Hi,
I have a simple burn bundle that contains three packages: .NET, a 64-bit MSI
and an equivalent 32-bit MSI. The MSIs are not compressed as part of the bundle
EXE but are external. The MsiPackage elements have both a SourceFile attribute
and a DownloadURL attribute. If I run the bundle EXE with the MSI's contained
on the local file system then the bundle uses the appropriate local MSI and
installs the package. The package can also be uninstalled without any problem.
If I remove the MSI from the local file system to force the bundle to use the
download URL then it does indeed download the MSI from the URL and install it
successfully.
HOWEVER, in this case, uninstalling the bundle causes the bundle to be removed
from ARP with no complaints, but the MSI files are NOT UNINSTALLED. In other
words, it clearly has not uninstalled the MSI. It only uninstalls the bundle.
This leaves my system in a state where I have to manually remove all the files
that were installed by the MSI and then do a System Restore to get rid of the
component registrations.
I'm using the ManagedBootstrapperApplicationHost with a version of the
src/Setup/WixBA that has only been modified slightly (really just small changes
to the GUI and "check for update" code so far).
My Chain looks like:
<Chain>
<PackageGroupRef Id='NetFx40Web' />
<MsiPackage Id='myapp_win64'
Name='win64\myapp.msi'
SourceFile='$(var.MyApp.ProjectDir)win64\myapp.msi'
DownloadUrl='http://mycompany.com/win64/myapp.msi'
InstallCondition='VersionNT64 >= v6.1'
Compressed='no'
Permanent='no'/>
<MsiPackage Id='myapp_win32'
Name='win32\myapp.msi'
SourceFile='$(var.MyApp.ProjectDir)win32\myapp.msi'
DownloadUrl='http://mycompany.com/win32/myapp.msi'
InstallCondition='(NOT VersionNT64) AND (VersionNT >=
v6.1)'
Compressed='no'
Permanent='no'/>
</Chain>
The only thing I noticed in the log that looked like a warning during install
was the line:
[1010:0D9C][2014-01-06T14:23:04]w355: Unable to register source directory:
C:\ProgramData\Package
Cache\{E351F542-514D-4019-8362-61F01897D08B}v2.3.703\win64\, product:
{E351F542-514D-4019-8362-61F01897D08B}, reason: 0x80070645. Continuing...
During uninstall, the log showed the following line that looked suspicious:
[1320:1644][2014-01-06T14:31:31]w120: Detected partially cached package:
myapp_win64, invalid payload: myapp_win64, reason: 0x80070570
Does anyone know what is going wrong? Do I need to define the Cache attributes
for the MsiPackage elements? I can provide more of the logs if needed. It never
creates an uninstall log specific to the MSI so it looks to me like it never
even attempts to uninstall the MSI.
Ultimately what I want to do is have a single bundle EXE that I put on a
distribution CD as well as on the web. On the distribution CD, I will also have
the two MSIs on the CD so that everything the user needs is available on the
CD. On the web, I will put the MSIs at the download URLs so that the customer
only has to download the bundle EXE, which is quite small, and then the bundle
EXE itself will download the MSI it needs depending on whether the client is
running a 32-bit or 64-bit version of Windows.
It all seemed to work beautifully and seamlessly until I tried to uninstall the
bundle after installing from the web.
Sincerely,
Daniel Madill
------------------------------------------------------------------------------
Rapidly troubleshoot problems before they affect your business. Most IT
organizations don't have a clear picture of how application performance
affects their revenue. With AppDynamics, you get 100% visibility into your
Java,.NET, & PHP application. Start your 15-day FREE TRIAL of AppDynamics Pro!
http://pubads.g.doubleclick.net/gampad/clk?id=84349831&iu=/4140/ostg.clktrk
_______________________________________________
WiX-users mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/wix-users