Open RGBradford opened 8 years ago
Is there a workaround for this?
Should InstallLocation simply be set to the package cache location in order to pass the WACK certification test? I thought about trying to get my bundled MSI package to discover the burn package's ProductCode and write the msi product location under the HKEY_LOCAL_MACHINE\Software\Microsoft\Windows\CurrentVersion\Uninstall{BURNPRODUCTCODE}\InstallLocation registry key, but really that's nonsense for anyone with multiple payloads in the bundle.
Probably better to allow InstallLocation to be set by a variable that a BA could set (or even a search, or by some other means) to where the main program is installed.
OK. Following a helpful discussion with the WIX devs I've had another attempt at this using variables. It now passes all WACK tests except for the fact that the unattended UNinstallation step pops up the UI so I have to click Uninstall - but that's something else I need to look into.
To remove the warnings about InstallLocation I used the following technique in my BURN code update:
Defines a new internal installer variable called WixBundleInstallLocation
Burn engine attempts to auto-discover this after each successful msi installation by looking for an InstallLocation in each MSIs own Uninstall registration area. Ensure your main product MSI package sets the ARPINSTALLLOCATION property as per the instructions here: http://robmensching.com/blog/posts/2011/1/14/arpinstalllocation-and-how-to-set-it-with-the-wix-toolset/ If you've got multiple msis that all set an InstallLocation, the final package wins (its likely to be the main one). In RegistrationSessionEnd, if WixBundleInstallLocation has a value, it is written as the InstallLocation in the Bundles Uninstall registration key..
WACK is happy
I've pushed a separate commit which produces a /quiet UninstallString by specifying
<Variable Name="UnattendedUninstall" bal:Overridable="yes" Type="numeric" Value="1" />
in your Bundle.wxs
This allows WACK and other automated testers that rely on UninstallString to proceed without user intervention.
That seems really weird: QuietUninstallString
exists for that purpose. Not sure why WACK would rely on the interactive version.
Agreed. Maybe somebody with bigger boots than me can give it a kick...
We have the same problem in our setup.
If this is important to you, I recommend going and voting for the Connect issue above. It captures the issue well and WACK should be updated.
https://github.com/wixtoolset/wix3/pull/331 https://github.com/wixtoolset/wix4/pull/193
Does anyone know what happened to the Connect issue? The link no longer works since they retired Connect.
If you validate a burn bootstrapper installer (generated using WIX 3.10.1) using the Windows App Certification Kit, you get these warnings in the Clean reversible install test:
Write appropriate Add/Remove Program values
The requirements for Add/Remove Program registry settings are outlined in section 5.5 of Certification requirements for Windows desktop apps.