/build/static/layout/Breadcrumb_cap_w.png

Software Deployment Question


Windows Installer .msi and display language detection/determination...

11/29/2016 2274 views
Hi all,

I was wondering how the runtime language is determined when running and .msi, NOT a Setup.exe with the language selection dialog.

For example, my default language is set as English. However, when launching the .msi on a German OS, the internal dialogs (not Windows Installer processing messages) display in German. I thought, since there is no language selection the default language would display, English. I am just executing the .msi by double clicking and NOT firing via command line with the passage of a language transform parameter.

My language transforms are embedded and not external .mst files if that makes a difference.

I'm trying to figure out how the displayed language is chosen as I'm trying to troubleshoot an issue on a German OS and, well, without knowing the language, its kind of tough. I guess I could pass English as the language, but that might produce different results seen in the field (executing from command line with no transform argurment (language) specified.
6 Comments   [ + ] Show comments

Comments

  • Here's what appears to be happening...

    We have an .msi that I fire off and the dialogs are displayed in German on that OS language without passing a TRANSFORMS parameter to it. We then install another .msi and attempt to launch that via a custom action .exe. There, we pass the language from the calling .msi. When the secondary .msi runs I get the following in German...

    Error in the application of transforms. Make sure that the specificed transformation paths are valid.

    I can take the same secondary .msi and use the calling command line to display the different supported languages on an English OS.

    msiexec /i "c:\My\Path\To\Test.msi" TRANSFORMS=:1031

    On an English OS I can display German dialog verbiage using the above command line, but the same does not work on a German OS.

    Are the command lines different for passing Transforms on different language OSs?
  • Why or how does Windows Installer recognize and apply the embedded transform if the .msi is launched directly, but errors when calling the embedded transform via the command line.

    I could call the secondary .msi directly from my custom action without passing the language transform parameter and I believe that would work. However, there may be instances where the user would like to launch these installers in a language foreign to the operating system. Why can this not be done via the command line as can be done on my English OS? I don't have any issue calling all the languages from the command line on that OS.
  • Log from command line attempt to apply the German transform...

    === Verbose logging started: 30.11.2016 09:59:59 Build type: SHIP UNICODE 5.00.7601.00 Calling process: C:\Windows\system32\msiexec.exe ===
    MSI (c) (A4:94) [09:59:59:165]: Font created. Charset: Req=0, Ret=0, Font: Req=MS Shell Dlg, Ret=MS Shell Dlg

    MSI (c) (A4:94) [09:59:59:165]: Font created. Charset: Req=0, Ret=0, Font: Req=MS Shell Dlg, Ret=MS Shell Dlg

    MSI (c) (A4:68) [09:59:59:165]: Resetting cached policy values
    MSI (c) (A4:68) [09:59:59:165]: Machine policy value 'Debug' is 0
    MSI (c) (A4:68) [09:59:59:165]: ******* RunEngine:
    ******* Product: c:\MyAppclientinstaller.msi
    ******* Action:
    ******* CommandLine: **********
    MSI (c) (A4:68) [09:59:59:212]: Machine policy value 'DisableUserInstalls' is 0
    MSI (c) (A4:68) [09:59:59:228]: Note: 1: 1402 2: HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Policies\Explorer 3: 2
    MSI (c) (A4:68) [09:59:59:228]: SOFTWARE RESTRICTION POLICY: Verifying package --> 'c:\MyAppclientinstaller.msi' against software restriction policy
    MSI (c) (A4:68) [09:59:59:228]: SOFTWARE RESTRICTION POLICY: c:\MyAppclientinstaller.msi has a digital signature
    MSI (c) (A4:68) [10:00:04:344]: SOFTWARE RESTRICTION POLICY: c:\MyAppclientinstaller.msi is permitted to run at the 'unrestricted' authorization level.
    MSI (c) (A4:68) [10:00:04:360]: Cloaking enabled.
    MSI (c) (A4:68) [10:00:04:360]: Attempting to enable all disabled privileges before calling Install on Server
    MSI (c) (A4:68) [10:00:04:376]: End dialog not enabled
    MSI (c) (A4:68) [10:00:04:376]: Original package ==> c:\MyAppclientinstaller.msi
    MSI (c) (A4:68) [10:00:04:376]: Package we're running from ==> c:\MyAppclientinstaller.msi
    MSI (c) (A4:68) [10:00:04:391]: APPCOMPAT: Compatibility mode property overrides found.
    MSI (c) (A4:68) [10:00:04:391]: APPCOMPAT: looking for appcompat database entry with ProductCode '{7ED0ECC8-5CD3-4A4A-BEFA-DCD0423B1800}'.
    MSI (c) (A4:68) [10:00:04:391]: APPCOMPAT: no matching ProductCode found in database.
    MSI (c) (A4:68) [10:00:04:391]: MSCOREE not loaded loading copy from system32
    MSI (c) (A4:68) [10:00:04:391]: Machine policy value 'TransformsSecure' is 0
    MSI (c) (A4:68) [10:00:04:391]: User policy value 'TransformsAtSource' is 0
    MSI (c) (A4:68) [10:00:04:391]: Machine policy value 'DisablePatch' is 0
    MSI (c) (A4:68) [10:00:04:391]: Machine policy value 'AllowLockdownPatch' is 0
    MSI (c) (A4:68) [10:00:04:391]: Machine policy value 'DisableLUAPatching' is 0
    MSI (c) (A4:68) [10:00:04:391]: Machine policy value 'DisableFlyWeightPatching' is 0
    MSI (c) (A4:68) [10:00:04:391]: Looking for storage transform: 1031
    MSI (c) (A4:68) [10:00:04:391]: Note: 1: 2262 2: Patch 3: -2147287038
    MSI (c) (A4:68) [10:00:04:391]: Note: 1: 2205 2: 3: PatchPackage
    MSI (c) (A4:68) [10:00:04:391]: Note: 1: 2262 2: _Tables 3: -2147287038
    MSI (c) (A4:68) [10:00:04:391]: Note: 1: 2262 2: _Columns 3: -2147287038
    MSI (c) (A4:68) [10:00:04:391]: Note: 1: 2262 2: Media 3: -2147287038
    MSI (c) (A4:68) [10:00:04:391]: Note: 1: 2262 2: File 3: -2147287038
    MSI (c) (A4:68) [10:00:04:391]: TRANSFORM: 'PatchPackage' table is missing or empty. No pre-transform fixup necessary.
    MSI (c) (A4:68) [10:00:04:391]: TRANSFORM: Applying regular transform to database.
    MSI (c) (A4:68) [10:00:04:391]: Note: 1: 2262 2: _Tables 3: -2147287038
    MSI (c) (A4:68) [10:00:04:391]: Note: 1: 2262 2: _Columns 3: -2147287038
    MSI (c) (A4:68) [10:00:04:391]: Note: 1: 2262 2: AdminExecuteSequence 3: -2147287038
    MSI (c) (A4:68) [10:00:04:391]: Note: 1: 2262 2: Condition 3: -2147287038
    MSI (c) (A4:68) [10:00:04:391]: Note: 1: 2262 2: AdminUISequence 3: -2147287038
    MSI (c) (A4:68) [10:00:04:391]: Note: 1: 2262 2: AdvtExecuteSequence 3: -2147287038
    MSI (c) (A4:68) [10:00:04:391]: Note: 1: 2262 2: AdvtUISequence 3: -2147287038
    MSI (c) (A4:68) [10:00:04:391]: Note: 1: 2262 2: AppSearch 3: -2147287038
    MSI (c) (A4:68) [10:00:04:391]: Note: 1: 2262 2: Binary 3: -2147287038
    MSI (c) (A4:68) [10:00:04:391]: Note: 1: 2262 2: File 3: -2147287038
    MSI (c) (A4:68) [10:00:04:391]: Note: 1: 2262 2: CheckBox 3: -2147287038
    MSI (c) (A4:68) [10:00:04:391]: Note: 1: 2262 2: Class 3: -2147287038
    MSI (c) (A4:68) [10:00:04:391]: Note: 1: 2262 2: Component 3: -2147287038
    MSI (c) (A4:68) [10:00:04:391]: Note: 1: 2262 2: Icon 3: -2147287038
    MSI (c) (A4:68) [10:00:04:391]: Note: 1: 2262 2: ProgId 3: -2147287038
    MSI (c) (A4:68) [10:00:04:391]: Note: 1: 2262 2: ComboBox 3: -2147287038
    MSI (c) (A4:68) [10:00:04:391]: Note: 1: 2262 2: ControlCondition 3: -2147287038
    MSI (c) (A4:68) [10:00:04:391]: Note: 1: 2262 2: ControlEvent 3: -2147287038
    MSI (c) (A4:68) [10:00:04:391]: Note: 1: 2262 2: CreateFolder 3: -2147287038
    MSI (c) (A4:68) [10:00:04:391]: Note: 1: 2262 2: CustomAction 3: -2147287038
    MSI (c) (A4:68) [10:00:04:391]: Note: 1: 2262 2: DuplicateFile 3: -2147287038
    MSI (c) (A4:68) [10:00:04:391]: Note: 1: 2262 2: ModuleSignature 3: -2147287038
    MSI (c) (A4:68) [10:00:04:391]: Note: 1: 2262 2: EventMapping 3: -2147287038
    MSI (c) (A4:68) [10:00:04:391]: Note: 1: 2262 2: Extension 3: -2147287038
    MSI (c) (A4:68) [10:00:04:391]: Note: 1: 2262 2: FeatureComponents 3: -2147287038
    MSI (c) (A4:68) [10:00:04:391]: Note: 1: 2262 2: Font 3: -2147287038
    MSI (c) (A4:68) [10:00:04:391]: Note: 1: 2262 2: IniFile 3: -2147287038
    MSI (c) (A4:68) [10:00:04:391]: Note: 1: 2262 2: InstallExecuteSequence 3: -2147287038
    MSI (c) (A4:68) [10:00:04:391]: Note: 1: 2262 2: InstallUISequence 3: -2147287038
    MSI (c) (A4:68) [10:00:04:391]: Note: 1: 2262 2: ListBox 3: -2147287038
    MSI (c) (A4:68) [10:00:04:391]: Note: 1: 2262 2: ListView 3: -2147287038
    MSI (c) (A4:68) [10:00:04:391]: Note: 1: 2262 2: Media 3: -2147287038
    MSI (c) (A4:68) [10:00:04:391]: Note: 1: 2262 2: ModuleComponents 3: -2147287038
    MSI (c) (A4:68) [10:00:04:391]: Note: 1: 2262 2: MsiAssembly 3: -2147287038
    MSI (c) (A4:68) [10:00:04:391]: Note: 1: 2262 2: MsiAssemblyName 3: -2147287038
    MSI (c) (A4:68) [10:00:04:391]: Note: 1: 2262 2: MsiFileHash 3: -2147287038
    MSI (c) (A4:68) [10:00:04:391]: Note: 1: 2262 2: Patch 3: -2147287038
    MSI (c) (A4:68) [10:00:04:391]: Note: 1: 2262 2: Registry 3: -2147287038
    MSI (c) (A4:68) [10:00:04:391]: Note: 1: 2262 2: RegLocator 3: -2147287038
    MSI (c) (A4:68) [10:00:04:391]: Note: 1: 2262 2: RemoveFile 3: -2147287038
    MSI (c) (A4:68) [10:00:04:391]: Note: 1: 2262 2: Signature 3: -2147287038
    MSI (c) (A4:68) [10:00:04:391]: Note: 1: 2262 2: TextStyle 3: -2147287038
    MSI (c) (A4:68) [10:00:04:391]: Note: 1: 2262 2: Upgrade 3: -2147287038
    MSI (c) (A4:68) [10:00:04:391]: Note: 1: 2262 2: Verb 3: -2147287038
    MSI (c) (A4:68) [10:00:04:391]: Note: 1: 2262 2: _Validation 3: -2147287038
    MSI (c) (A4:68) [10:00:04:391]: Note: 1: 2262 2: ISComponentExtended 3: -2147287038
    MSI (c) (A4:68) [10:00:04:391]: Note: 1: 2262 2: ISCustomActionReference 3: -2147287038
    MSI (c) (A4:68) [10:00:04:391]: Note: 1: 2262 2: ISSearchReplace 3: -2147287038
    MSI (c) (A4:68) [10:00:04:391]: Note: 1: 2262 2: ISSearchReplaceSet 3: -2147287038
    MSI (c) (A4:68) [10:00:04:391]: Note: 1: 2262 2: MsiSFCBypass 3: -2147287038
    MSI (c) (A4:68) [10:00:04:391]: Note: 1: 2262 2: SxsMsmGenComponents 3: -2147287038
    MSI (c) (A4:68) [10:00:04:391]: Note: 1: 2262 2: _MsiPatchTransformView 3: -2147287038
    MSI (c) (A4:68) [10:00:04:391]: Note: 1: 2262 2: #_BaselineCost 3: -2147287038
    MSI (c) (A4:68) [10:00:04:391]: Note: 1: 2262 2: #_BaselineFile 3: -2147287038
    MSI (c) (A4:68) [10:00:04:391]: Note: 1: 2262 2: #_BaselineData 3: -2147287038
    MSI (c) (A4:68) [10:00:04:391]: Note: 1: 2262 2: #_PatchCache 3: -2147287038
    MSI (c) (A4:68) [10:00:04:391]: Note: 1: 2262 2: MsiPatchCertificate 3: -2147287038
    MSI (c) (A4:68) [10:00:04:391]: Note: 1: 2262 2: ISDRMFileAttribute 3: -2147287038
    MSI (c) (A4:68) [10:00:04:391]: Note: 1: 2262 2: ISDRMLicense 3: -2147287038
    MSI (c) (A4:68) [10:00:04:391]: Note: 1: 2262 2: MsiDigitalCertificate 3: -2147287038
    MSI (c) (A4:68) [10:00:04:391]: Looking for storage transform: 1031
    MSI (c) (A4:68) [10:00:04:391]: Note: 1: 2203 2: 1031 3: -2147287035
    DEBUG: Error 2203: Database: 1031. Cannot open database file. System error -2147287035
    1: 2203 2: 1031 3: -2147287035
    Fehler bei der Übernahme der Transformationspakete. Stellen Sie sicher, dass die Transformationspfade gültig sind.
    1031
    MSI (c) (A4:68) [10:00:04:391]: Note: 1: 1708
    MSI (c) (A4:68) [10:00:04:391]: Produkt: MyComp MyApp 2017 Client Service Pack 1 -- Installation fehlgeschlagen.

    MSI (c) (A4:68) [10:00:04:391]: Das Produkt wurde durch Windows Installer installiert. Produktname: MyComp MyApp 2017 Client Service Pack 1. Produktversion: 10.1.714. Produktsprache: 1031. Hersteller: Ihr Firmenname. Erfolg- bzw. Fehlerstatus der Installation: 1624.

    MSI (c) (A4:68) [10:00:04:391]: MainEngineThread is returning 1624
    === Verbose logging stopped: 30.11.2016 10:00:04 ===
  • Again, works fine if I double click to execute the .msi package and command line works on English OS, but not on German and Italian (may be all non-English OSs).
  • I think I may have found the answer...


    http://windows-installer-xml-wix-toolset.687559.n2.nabble.com/single-msi-file-seems-to-need-1033-mst-transform-file-td3261535.html


    The only problem is that in the Template Summary property, setting the Language to 0 (language neutral), I thought I ran into problems of some sort having 0 in there.
  • So I dug around and found my issues with having 0 mentioned as part of the Template summary property...

    http://forum.installsite.net/index.php?showtopic=20984

    https://community.flexerasoftware.com/showthread.php?201377-Major-Upgrade-Not-Working

    I think what I have to try is my current blank upgrade table setting with 0 in the template summary property. Hopefully major upgrades will work and I will be able to call specific foreign language transforms.

Be the first to answer this question

 
This website uses cookies. By continuing to use this site and/or clicking the "Accept" button you are providing consent Quest Software and its affiliates do NOT sell the Personal Data you provide to us either when you register on our websites or when you do business with us. For more information about our Privacy Policy and our data protection efforts, please visit GDPR-HQ