#3264 Files not installed to GAC on XP using default bootstrapper when updating existing version

v4.0
external
GAC XP (1)
2013-04-15
2013-04-10
Chris West
No

Using Wix 3.6, following scenario works correctly on windows 7 Ent, SP1, 64 bit, but not on XP Pro, SP3, 32 bit.
In order to have a small test case, I have an wix installer that only installs one text file(CWTestGACInstallMe.txt) and adds one dll(cwTestGACClass.dll) to the GAC. I am using the "WixStandardBootstrapperApplication.RtfLicense" bootstrapper. Scenario is as follows:
Install version 1.0.0.0, dll is added to the GAC successfully.
Install version 1.0.0.1. Version 1.0.0.0 is correctly uninstalled and Version 1.0.0.1 is correctly installed, however on XP, the dll is NOT added to the GAC. On Windows 7, the dll IS added to the GAC in this scenario.
Note that on XP, if I install 1.0.0.1 without 1.0.0.0 being installed, the dll IS added to the GAC.
The attached zip contains four files:
CWTestGACInstaller_20130410104923_0_CWTestGACInstallerXPV1001.msi.log - This is V1001 installed on XP without V1000 already installed on the machine.
CWTestGACInstaller_20130409194213_0_CWTestGACInstallerXPV1001InstallOverV1000.msi.log - This is V1001 installed on XP when V1000 is already installed on the machine.
CWTestGACInstaller_20130410093854_0_CWTestGACInstallerWin7V1001Install.msi.log - This is V1001 installed on Windows 7 without V1000 already installed on the machine.
CWTestGACInstaller_20130410093113_0_CWTestGACInstallerWin7V1001InstallOverV1000.msi.log - This is V1001 installed on Windows 7 when V1000 is already installed on the machine.

The key difference between the CWTestGACInstaller_20130409194213_0_CWTestGACInstallerXPV1001InstallOverV1000.msi.log and CWTestGACInstaller_20130410093113_0_CWTestGACInstallerWin7V1001InstallOverV1000.msi.log involves the differences between the logged entries for the “(ActionStart(Name=InstallFiles)" section in the InstallFinalize Action. For the Windows 7 log file(where the cwTestGACClass.dll is added to the GAC), this section lists both the cwTestGACClass.dll and the CWTestGACInstallMe.txt. For the XP log file(where the cwTestGACClass.dll is NOT added to the GAC), this section only lists the CWTestGACInstallMe.txt.

Also note that when V1001 is installed on XP without V1000 already being installed(log file
CWTestGACInstaller_20130410104923_0_CWTestGACInstallerXPV1001.msi.log ), the cwTestGACClass.dll is added to the GAC, and the logged entries for the “(ActionStart(Name=InstallFiles)" section in the InstallFinalize Action lists both the cwTestGACClass.dll and the CWTestGACInstallMe.txt.

I can send the bootstrapper log files as well if they are needed.

1 Attachments

Discussion

  • Rob Mensching

    Rob Mensching - 2013-04-10

    The WiX toolset does not control the install of files. That is all contained inside the Windows Installer. If you have general WiX questions, you might try asking on wix-users@lists.sourceforge.net

     
  • Rob Mensching

    Rob Mensching - 2013-04-10
    • status: open --> external
    • assigned_to: Rob Mensching
     
  • Chris West

    Chris West - 2013-04-10

    I have only recently incorporated the use of the "WixStandardBootstrapperApplication.RtfLicense" for our software and I'm still reading/learning about the burn functionality, so I apologize in advance if I'm misunderstanding how this works. But for my scenario, if I understand correctly, the burn bootstrapper is facilitating the uninstall of v1.0.0.0 and then the install of v1.0.0.1. Could there be something in that processing that burn is performing that works correctly on Windows 7 but not on XP in regards to this scenario? Thanks in advance for your help.

     
  • Rob Mensching

    Rob Mensching - 2013-04-10

    The new Bundle will uninstall the old Bundle after the new MSIs are installed. It sounds like upgrade logic in your MSIs is not correct. Again, for general questions about the WiX toolset please contact the wix-users mailing list instead.

     
  • Chris West

    Chris West - 2013-04-10

    The msi(built using Wix also) just does two things. #1 A text file is installed. #2 A dll is added to the GAC.

    1. On Windows 7 and Windows 8, install of V1.0.0.1 correctly adds the dll to the GAC if V1.0.0.0 is already installed
    2. On Windows XP, install of V1.0.0.1 does not add dll to the GAC if V1.0.0.0 is already installed.

    So the issue only manifests itself on Windows XP, the dll is added to the GAC correctly on Windows 7 and Windows 8. I'm confused as to how this could be an upgrade logic issue with the MSI. If it was, it shouldn't work on Windows7 or Windows 8 either I would think.

     
  • Rob Mensching

    Rob Mensching - 2013-04-10

    There is nothing in the Burn engine that behaves differently on XP either. Somewhere logic internal has gone awry. You'll be better served contacting wix-users@lists.sourceforge.net.

     
  • Chris West

    Chris West - 2013-04-15

    Meant to send this update out the other day, but forgot to. You were correct that it had nothing to do with the burn engine. I decided to run the same scenario test I described above using just the .msi file, not the burn exe file that was calling the .msi file. Anyway, installing just using the .msi file iteslf receives the same issue on XP that I described above.