Discussion:
[WiX-users] Wix - bootstrapping an MSI with Burn Installs ok, Uninstall Fails. MSI on it's own installs / uninstalls Ok
Ian Pender
2013-04-11 09:00:14 UTC
Permalink
I've been trying to produce a bootstrapped EXE of our MSI installer with .Net 4.0 from the web for a few days now and I need some help.

We've a simple MSI and need to Bundle it with .Net4. We've 2 variants of the MSI - x64/x86 and that's handled in the Bundle in the usual way.

The MSI installs and uninstalls fine, if .Net4 is there. Awesome.
Once bootstrapped, the EXE installs ok (and indeed patches .Net4 if required) and our app starts (as intended).
The problem is uninstall. It fails with the following log.

I'm stumped. Any clues at all?

**Bundle.wxs**
<?xml version="1.0" encoding="UTF-8"?>
<Wix xmlns="http://schemas.microsoft.com/wix/2006/wi"
xmlns:bal="http://schemas.microsoft.com/wix/BalExtension">

<?ifdef env.BuildNumber ?>
<?define VersionNumber= $(env.BuildNumber) ?>
<?else ?>
<?define VersionNumber="1.0.0.0" ?>
<?endif ?>
<?define UpgradeCode="{5C7CB098-A9BB-4ABC-9496-68B96C357270}"?>


<Bundle Name="App.Net Desktop Bootstrapper"
Version="$(var.VersionNumber)"
Manufacturer="App.Net"
UpgradeCode="$(var.UpgradeCode)"
Condition="((VersionNT >= v5.1) AND (ServicePackLevel >= 3)) OR ((VersionNT >= v5.2) AND (ServicePackLevel >= 2)) OR (VersionNT >= v6.0)"
IconSourceFile="..\..\assets\App.NetDesktopIcon.ico">

<BootstrapperApplicationRef Id="WixStandardBootstrapperApplication.HyperlinkLicense">

<bal:WixStandardBootstrapperApplication
LicenseUrl=""
SuppressOptionsUI="yes"
ThemeFile="..\..\assets\wixTheme\PipeInstaller.xml"
LocalizationFile="..\..\assets\wixTheme\MyTheme.wxl" />
<PayloadGroupRef Id="installPayload"/>
</BootstrapperApplicationRef>

<PayloadGroup Id ="installPayload">

<Payload Id="image1" Name ="header.png" SourceFile="..\..\assets\wixTheme\header.png" />
<Payload Id="image2" Name ="install-smaller.png" SourceFile="..\..\assets\wixTheme\install-smaller.png" />
</PayloadGroup>
<Chain>
<PackageGroupRef Id="NetFx40Web" />


<MsiPackage
Id="x86"
SourceFile="..\..\bin\Win\x86\msi\App.Net.msi"
InstallCondition="NOT VersionNT64"
Visible="no">

<MsiProperty Name="AUTOUPDATEENABLED" Value="1" />
<MsiProperty Name="AUTOSTART" Value="1" />
<MsiProperty Name="CALLEDFROMEXE" Value="1" />
</MsiPackage>

<MsiPackage
Id="x64"
SourceFile="..\..\bin\Win\x64\msi\App.Net.msi"
InstallCondition="VersionNT64"
Visible="no">

<MsiProperty Name="AUTOUPDATEENABLED" Value="1" />
<MsiProperty Name="AUTOSTART" Value="1" />
<MsiProperty Name="CALLEDFROMEXE" Value="1" />
</MsiPackage>
</Chain>
</Bundle>
</Wix>

**Install Error Log**
[0FAC:0348][2013-04-11T00:29:11]: Burn v3.6.3303.0, Windows v6.1 (Build 7601: Service Pack 1), path: C:\ProgramData\Package Cache\{c7e4c719-a2f5-46ab-8875-3bc46f059503}\App.Net.Setup.exe, cmdline: '/uninstall -burn.unelevated BurnPipe.{0ED581A2-B6CE-473D-AADF-46CF51E7DF81} {20A283F6-897C-4CFC-9718-89B0E4BD138E} 3888'
[0FAC:0348][2013-04-11T00:29:11]: Setting string variable 'WixBundleLog' to value 'C:\Users\IEUser\AppData\Local\Temp\App.Net_Desktop_Bootstrapper_20130411002911.log'
[0FAC:0348][2013-04-11T00:29:11]: Condition '((VersionNT >= v5.1) AND (ServicePackLevel >= 3)) OR ((VersionNT >= v5.2) AND (ServicePackLevel >= 2)) OR (VersionNT >= v6.0)' evaluates to true.
[0FAC:0348][2013-04-11T00:29:11]: Detect 3 packages
[0FAC:0348][2013-04-11T00:29:11]: Setting string variable 'NETFRAMEWORK40' to value '1'
[0FAC:0348][2013-04-11T00:29:11]: Condition 'NETFRAMEWORK40' evaluates to true.
[0FAC:0348][2013-04-11T00:29:11]: Detected package: NetFx40Web, state: Present, cached: Complete
[0FAC:0348][2013-04-11T00:29:11]: Detected package: x86, state: Present, cached: Complete
[0FAC:0348][2013-04-11T00:29:11]: Detected package: x64, state: Absent, cached: None
[0FAC:0348][2013-04-11T00:29:11]: Detect complete, result: 0x0
[0FAC:0348][2013-04-11T00:29:59]: Plan 3 packages, action: Uninstall
[0FAC:0348][2013-04-11T00:29:59]: Setting string variable 'WixBundleRollbackLog_x86' to value 'C:\Users\IEUser\AppData\Local\Temp\App.Net_Desktop_Bootstrapper_20130411002911_0_x86_rollback.log'
[0FAC:0348][2013-04-11T00:29:59]: Setting string variable 'WixBundleLog_x86' to value 'C:\Users\IEUser\AppData\Local\Temp\App.Net_Desktop_Bootstrapper_20130411002911_0_x86.log'
[0FAC:0348][2013-04-11T00:29:59]: Skipping dependency registration on package with no dependency providers: NetFx40Web
[0FAC:0348][2013-04-11T00:29:59]: Planned package: x64, state: Absent, default requested: Absent, ba requested: Absent, execute: None, rollback: None, cache: No, uncache: No, dependency: Unregister
[0FAC:0348][2013-04-11T00:29:59]: Planned package: x86, state: Present, default requested: Absent, ba requested: Absent, execute: Uninstall, rollback: Install, cache: No, uncache: Yes, dependency: Unregister
[0FAC:0348][2013-04-11T00:29:59]: Planned package: NetFx40Web, state: Present, default requested: None, ba requested: None, execute: None, rollback: None, cache: No, uncache: No, dependency: None
[0FAC:0348][2013-04-11T00:29:59]: Plan complete, result: 0x0
[0FAC:0348][2013-04-11T00:29:59]: Apply begin
[0F30:0F50][2013-04-11T00:29:59]: Creating a system restore point.
[0F30:0F50][2013-04-11T00:29:59]: Could not create system restore point, error: 0x80070422. Continuing...
[0F30:0F50][2013-04-11T00:29:59]: Removed dependency: {c7e4c719-a2f5-46ab-8875-3bc46f059503} on package provider: {129A003A-2370-4378-B0FA-10509C76FE2E}, package x86
[0F30:0F50][2013-04-11T00:29:59]: Applying execute package: x86, action: Uninstall, path: C:\ProgramData\Package Cache\{129A003A-2370-4378-B0FA-10509C76FE2E}v1.0.0.0\App.Net.msi, arguments: ' ARPSYSTEMCOMPONENT="1" MSIFASTINSTALL="7" AUTOUPDATEENABLED="1" AUTOSTART="1" CALLEDFROMEXE="1"'
[0F30:0F50][2013-04-11T00:30:00]: Error 0x80070643: Failed to uninstall MSI package.
[0F30:0F50][2013-04-11T00:30:00]: Error 0x80070643: Failed to execute MSI package.
[0FAC:0348][2013-04-11T00:30:00]: Error 0x80070643: Failed to configure per-machine MSI package.
[0FAC:0348][2013-04-11T00:30:00]: Applied execute package: x86, result: 0x80070643, restart: None
[0FAC:0348][2013-04-11T00:30:00]: Error 0x80070643: Failed to execute MSI package.
[0F30:0F50][2013-04-11T00:30:00]: Applying rollback package: x86, action: Install, path: C:\ProgramData\Package Cache\{129A003A-2370-4378-B0FA-10509C76FE2E}v1.0.0.0\App.Net.msi, arguments: ' ARPSYSTEMCOMPONENT="1" MSIFASTINSTALL="7" AUTOUPDATEENABLED="1" AUTOSTART="1" CALLEDFROMEXE="1"'
[0F30:0F50][2013-04-11T00:30:01]: Registering package dependency provider: {129A003A-2370-4378-B0FA-10509C76FE2E}, version: 1.0.0.0, package: x86
[0FAC:0348][2013-04-11T00:30:01]: Applied rollback package: x86, result: 0x0, restart: None
[0F30:0F50][2013-04-11T00:30:01]: Registering dependency: {c7e4c719-a2f5-46ab-8875-3bc46f059503} on package provider: {129A003A-2370-4378-B0FA-10509C76FE2E}, package: x86
[0FAC:0348][2013-04-11T00:30:02]: Apply complete, result: 0x80070643, restart: None, ba requested restart: No


Thanks in advance!
ian
Bob Arnson
2013-04-11 12:25:31 UTC
Permalink
Post by Ian Pender
[0F30:0F50][2013-04-11T00:29:59]: Applying execute package: x86, action: Uninstall, path: C:\ProgramData\Package Cache\{129A003A-2370-4378-B0FA-10509C76FE2E}v1.0.0.0\App.Net.msi, arguments: ' ARPSYSTEMCOMPONENT="1" MSIFASTINSTALL="7" AUTOUPDATEENABLED="1" AUTOSTART="1" CALLEDFROMEXE="1"'
[0F30:0F50][2013-04-11T00:30:00]: Error 0x80070643: Failed to uninstall MSI package.
That just tells you it failed. The verbose MSI log will tell you why.
--
sig://boB
http://joyofsetup.com/
penderi
2013-04-11 12:28:03 UTC
Permalink
Hi Bob,

Thanks so much for the response. The MSI, when I install/uninstall on it's
own works fine.
How can I get a verbose log from uninstalling the bootstrap EXE ?
Sorry if I'm being a dumb a?? ....



--
View this message in context: http://windows-installer-xml-wix-toolset.687559.n2.nabble.com/Wix-bootstrapping-an-MSI-with-Burn-Installs-ok-Uninstall-Fails-MSI-on-it-s-own-installs-uninstalls-Ok-tp7585073p7585081.html
Sent from the wix-users mailing list archive at Nabble.com.
Bob Arnson
2013-04-11 12:32:50 UTC
Permalink
Post by penderi
Thanks so much for the response. The MSI, when I install/uninstall on it's
own works fine.
How can I get a verbose log from uninstalling the bootstrap EXE ?
Burn generates a log for each package, next to the Burn log and with the
same base name.
--
sig://boB
http://joyofsetup.com/
penderi
2013-04-11 12:45:34 UTC
Permalink
Thanks again Bob, in many ways you're my only hope!
I've found the logs in %temp%. If I remove the directory contents and use
control panel to uninstall, the result are 3 log files, 2 are verbose and 1
is the Burn summary we get in the log file link on the bootstrap failure
link.

The problem is I see no 'ERROR' or similar in the bootstrap logs. Is there a
particular value / issue I'm looking for? I'm burning time here.....



--
View this message in context: http://windows-installer-xml-wix-toolset.687559.n2.nabble.com/Wix-bootstrapping-an-MSI-with-Burn-Installs-ok-Uninstall-Fails-MSI-on-it-s-own-installs-uninstalls-Ok-tp7585073p7585083.html
Sent from the wix-users mailing list archive at Nabble.com.
penderi
2013-04-11 12:58:43 UTC
Permalink
I've found the following entry in the verbose logs:

MSI (s) (F0:E4) [05:36:30:999]: No System Restore sequence number for this
installation.
MSI (s) (F0:E4) [05:36:30:999]: Unlocking Server
MSI (s) (F0:E4) [05:36:30:999]: PROPERTY CHANGE: Deleting UpdateStarted
property. Its current value is '1'.
MSI (s) (F0:E4) [05:36:30:999]: Doing action: LaunchApplication
MSI (s) (F0:E4) [05:36:30:999]: Note: 1: 2205 2: 3: ActionText
Action ended 5:36:30: InstallFinalize. Return value 1.
MSI (s) (F0:F0) [05:36:30:999]: Invoking remote custom action. DLL:
C:\Windows\Installer\MSI1A6F.tmp, Entrypoint: WixShellExec
Action start 5:36:30: LaunchApplication.
WixShellExec: Error 0x80070002: ShellExec failed with return code 2
WixShellExec: Error 0x80070002: failed to launch target
CustomAction LaunchApplication returned actual error code 1603 (note this
may not be 100% accurate if translation happened inside sandbox)
Action ended 5:36:31: LaunchApplication. Return value 3.
Action ended 5:36:31: INSTALL. Return value 3.
MSI (s) (F0:E4) [05:36:31:015]: Note: 1: 1725
MSI (s) (F0:E4) [05:36:31:015]: Product: TheApp -- Removal failed.

This seems to imply that the Uninstall action is attempting to restart the
app. Which is undesirable.
Is that right ? How can I stop this? Is there a way of controlling the
bootstrap uninstall??



--
View this message in context: http://windows-installer-xml-wix-toolset.687559.n2.nabble.com/Wix-bootstrapping-an-MSI-with-Burn-Installs-ok-Uninstall-Fails-MSI-on-it-s-own-installs-uninstalls-Ok-tp7585073p7585086.html
Sent from the wix-users mailing list archive at Nabble.com.
Steven Ogilvie
2013-04-11 14:10:03 UTC
Permalink
Classification: Public
Looks like your custom action is trying to run on uninstall (LaunchApplication) which properly is NOT a good idea?
If you only want your custom action to run during installation perhaps you should have a condition:
<Custom Action="CA_CREATESHORTCUTFILE" After="CA_CREATEWEBLAUNCHFILE">NOT Installed</Custom>

You can turn on verbose logging for the MSI by adding this propery <Property Id="MsiLogging" Value="voicewarmupx"/> However, as Bob said the Bootstrapper/burn will create a log file for each MSI run as well as its own...
They are in the %temp% folder and are named: <Name of your Product>_date/time stamp.log each of the MSI's that you have running will have its own log file:
<Name of your Product>_MSIName_date/time stamp.log

Steve

-----Original Message-----
From: penderi [mailto:***@huddle.com]
Sent: April-11-13 8:59 AM
To: wix-***@lists.sourceforge.net
Subject: Re: [WiX-users] Wix - bootstrapping an MSI with Burn Installs ok, Uninstall Fails. MSI on it's own installs / uninstalls Ok

I've found the following entry in the verbose logs:

MSI (s) (F0:E4) [05:36:30:999]: No System Restore sequence number for this installation.
MSI (s) (F0:E4) [05:36:30:999]: Unlocking Server MSI (s) (F0:E4) [05:36:30:999]: PROPERTY CHANGE: Deleting UpdateStarted property. Its current value is '1'.
MSI (s) (F0:E4) [05:36:30:999]: Doing action: LaunchApplication MSI (s) (F0:E4) [05:36:30:999]: Note: 1: 2205 2: 3: ActionText Action ended 5:36:30: InstallFinalize. Return value 1.
MSI (s) (F0:F0) [05:36:30:999]: Invoking remote custom action. DLL:
C:\Windows\Installer\MSI1A6F.tmp, Entrypoint: WixShellExec Action start 5:36:30: LaunchApplication.
WixShellExec: Error 0x80070002: ShellExec failed with return code 2
WixShellExec: Error 0x80070002: failed to launch target CustomAction LaunchApplication returned actual error code 1603 (note this may not be 100% accurate if translation happened inside sandbox) Action ended 5:36:31: LaunchApplication. Return value 3.
Action ended 5:36:31: INSTALL. Return value 3.
MSI (s) (F0:E4) [05:36:31:015]: Note: 1: 1725 MSI (s) (F0:E4) [05:36:31:015]: Product: TheApp -- Removal failed.

This seems to imply that the Uninstall action is attempting to restart the app. Which is undesirable.
Is that right ? How can I stop this? Is there a way of controlling the bootstrap uninstall??



--
View this message in context: http://windows-installer-xml-wix-toolset.687559.n2.nabble.com/Wix-bootstrapping-an-MSI-with-Burn-Installs-ok-Uninstall-Fails-MSI-on-it-s-own-installs-uninstalls-Ok-tp7585073p7585086.html
Sent from the wix-users mailing list archive at Nabble.com.

------------------------------------------------------------------------------
Precog is a next-generation analytics platform capable of advanced analytics on semi-structured data. The platform includes APIs for building apps and a phenomenal toolset for data science. Developers can use our toolset for easy data analysis & visualization. Get a free account!
http://www2.precog.com/precogplatform/slashdotnewsletter
_______________________________________________
WiX-users mailing list
WiX-***@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/wix-users




This message has been marked as Public by Steven Ogilvie on April-11-13 10:10:05 AM.

The above classification labels were added to the message by TITUS Message Classification. 
For more information visit www.titus.com.
Ian Pender
2013-04-12 16:26:37 UTC
Permalink
STEVE! PERFECT. Sincere thanks!

-----Original Message-----
From: Steven Ogilvie [mailto:***@titus.com]
Sent: 11 April 2013 15:10
To: General discussion for Windows Installer XML toolset.
Subject: Re: [WiX-users] Wix - bootstrapping an MSI with Burn Installs ok, Uninstall Fails. MSI on it's own installs / uninstalls Ok

Classification: Public
Looks like your custom action is trying to run on uninstall (LaunchApplication) which properly is NOT a good idea?
If you only want your custom action to run during installation perhaps you should have a condition:
<Custom Action="CA_CREATESHORTCUTFILE" After="CA_CREATEWEBLAUNCHFILE">NOT Installed</Custom>

You can turn on verbose logging for the MSI by adding this propery <Property Id="MsiLogging" Value="voicewarmupx"/> However, as Bob said the Bootstrapper/burn will create a log file for each MSI run as well as its own...
They are in the %temp% folder and are named: <Name of your Product>_date/time stamp.log each of the MSI's that you have running will have its own log file:
<Name of your Product>_MSIName_date/time stamp.log

Steve

-----Original Message-----
From: penderi [mailto:***@huddle.com]
Sent: April-11-13 8:59 AM
To: wix-***@lists.sourceforge.net
Subject: Re: [WiX-users] Wix - bootstrapping an MSI with Burn Installs ok, Uninstall Fails. MSI on it's own installs / uninstalls Ok

I've found the following entry in the verbose logs:

MSI (s) (F0:E4) [05:36:30:999]: No System Restore sequence number for this installation.
MSI (s) (F0:E4) [05:36:30:999]: Unlocking Server MSI (s) (F0:E4) [05:36:30:999]: PROPERTY CHANGE: Deleting UpdateStarted property. Its current value is '1'.
MSI (s) (F0:E4) [05:36:30:999]: Doing action: LaunchApplication MSI (s) (F0:E4) [05:36:30:999]: Note: 1: 2205 2: 3: ActionText Action ended 5:36:30: InstallFinalize. Return value 1.
MSI (s) (F0:F0) [05:36:30:999]: Invoking remote custom action. DLL:
C:\Windows\Installer\MSI1A6F.tmp, Entrypoint: WixShellExec Action start 5:36:30: LaunchApplication.
WixShellExec: Error 0x80070002: ShellExec failed with return code 2
WixShellExec: Error 0x80070002: failed to launch target CustomAction LaunchApplication returned actual error code 1603 (note this may not be 100% accurate if translation happened inside sandbox) Action ended 5:36:31: LaunchApplication. Return value 3.
Action ended 5:36:31: INSTALL. Return value 3.
MSI (s) (F0:E4) [05:36:31:015]: Note: 1: 1725 MSI (s) (F0:E4) [05:36:31:015]: Product: TheApp -- Removal failed.

This seems to imply that the Uninstall action is attempting to restart the app. Which is undesirable.
Is that right ? How can I stop this? Is there a way of controlling the bootstrap uninstall??



--
View this message in context: http://windows-installer-xml-wix-toolset.687559.n2.nabble.com/Wix-bootstrapping-an-MSI-with-Burn-Installs-ok-Uninstall-Fails-MSI-on-it-s-own-installs-uninstalls-Ok-tp7585073p7585086.html
Sent from the wix-users mailing list archive at Nabble.com.

------------------------------------------------------------------------------
Precog is a next-generation analytics platform capable of advanced analytics on semi-structured data. The platform includes APIs for building apps and a phenomenal toolset for data science. Developers can use our toolset for easy data analysis & visualization. Get a free account!
http://www2.precog.com/precogplatform/slashdotnewsletter
_______________________________________________
WiX-users mailing list
WiX-***@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/wix-users




This message has been marked as Public by Steven Ogilvie on April-11-13 10:10:05 AM.

The above classification labels were added to the message by TITUS Message Classification. For more information visit www.titus.com.
Loading...