Help understanding "Windows Installer Error 2745 Transform 1TTo1U invalid for package C:WINDOWSInstaller15ff62c.msp. Expected language 3082, found language 1034."

Problem

We have a Spanish version of our product. We are building a Service Pack 1 patch for the same. In the RTM version of the product, the MSI Language ID is 1034, while the localized assemblies have language ID 3082. Now, when I try to apply this patch over RTM installation, the patch fails with the following message.

The upgrade patch cannot be installed by the Windows Installer service because the program to be upgraded may be missing, or the upgrade patch may update a different version of the program. Verify that the program to be upgraded exists on your computer and that you have the correct upgrade patch.

On analyzing the log file, we found the Windows Installer is throwing 2745 error: Transform 1TTo1U invalid for package C:\WINDOWS\Installer\15ff62c.msp. Expected language 3082, found language 1034..

Drill Down

The language stored in the transform comes from the _SummaryInformation stream. This is what is used to validate the language for the patch since your patch validation conditions include 0x923 which specifies validate ProductLanguage. The ProductLanguage for the installed product is what is registered – which is the ProductLanguage property in the Property table.

Inspecting the _SummaryInformation stream of the transform, you'll find

[ 7][/p] Template(MSI CPU,LangIDs) = Intel;3082

Inspecting the property table of the original MSI, you'll find ProductLanguage = 1034

Solution

In reality, your package should not have had a _SummaryInformation stream language that was different from the ProductLanguage property value. That is why you see this error. The two values should be the same. In fact, if you ran validation on the package, you’d see this flagged by ICE80.

Content credit also belongs to

[Author: Robert Flaming]

This posting is provided "AS IS" with no warranties, and confers no rights. Use of included script samples are subject to the terms specified at https://www.microsoft.com/info/cpyright.htm.