[wix-users] Need some help fixing this Burn script...

Rob Mensching rob at firegiant.com
Wed Mar 20 10:58:47 PDT 2019


Maybe RollbackBoundary?

_____________________________________________________________
 Short replies here. Complete answers over there: http://www.firegiant.com/


-----Original Message-----
From: wix-users <wix-users-bounces at lists.wixtoolset.org> On Behalf Of Edwin Castro via wix-users
Sent: Wednesday, March 20, 2019 10:36 AM
To: Mike Franchitti <mfranchitti at redshift-tech.com>
Cc: Edwin Castro <egcastr at gmail.com>; WiX Toolset Users Mailing List <wix-users at lists.wixtoolset.org>
Subject: Re: [wix-users] Need some help fixing this Burn script...

Setting Permanent="yes" on the ExePackage and MsiPackage elements will disallow uninstallation of those packages. That means the bundle will never uninstall the packages which is probably not what you want.

I expect you could decide what to do for rollback on a package by package basis if you write a custom bootstrapper application but somebody with more experience will need to confirm that as I've never written a custom bootstrapper application.

--
Edwin G. Castro


On Wed, Mar 20, 2019 at 10:28 AM Mike Franchitti < mfranchitti at redshift-tech.com> wrote:

> Sorry Edwin, but do you know of a way to control the rollback? 
> Ideally, I would only want it to rollback the failing installer.
>
> On Wed, Mar 20, 2019 at 1:28 PM Mike Franchitti < 
> mfranchitti at redshift-tech.com> wrote:
>
>> Really appreciate your help with this Edwin!
>>
>> I will look into the ExitCode elements you mentioned and see if I can 
>> get CDM to go through as a success. I just verified that it did 
>> install successfully on target machine despite returning exit code 0x1.
>>
>> On Wed, Mar 20, 2019 at 1:23 PM Edwin Castro <egcastr at gmail.com> wrote:
>>
>>> The SerialPortDriver package, installed with CDM21228_Setup.exe, is 
>>> returning exit code 0x1 which is interpreted by the bundle as a failure.
>>>
>>> [1594:1F7C][2019-03-20T12:52:25]i301: Applying execute package:
>>> SerialPortDriver, action: Install, path: C:\ProgramData\Package 
>>> Cache\C44678C7459798C800332273C74049CEA204A604\CDM21228_Setup.exe,
>>> arguments: '"C:\ProgramData\Package
>>> Cache\C44678C7459798C800332273C74049CEA204A604\CDM21228_Setup.exe"'
>>> [1594:1F7C][2019-03-20T12:52:32]e000: Error 0x80070001: Process 
>>> returned
>>> error: 0x1
>>> [1594:1F7C][2019-03-20T12:52:32]e000: Error 0x80070001: Failed to 
>>> execute EXE package.
>>> [2D28:35C0][2019-03-20T12:52:32]e000: Error 0x80070001: Failed to 
>>> configure per-machine EXE package.
>>> [2D28:35C0][2019-03-20T12:52:32]i319: Applied execute package:
>>> SerialPortDriver, result: 0x80070001, restart: None
>>> [2D28:35C0][2019-03-20T12:52:32]e000: Error 0x80070001: Failed to 
>>> execute EXE package.
>>>
>>> As a result, the bundle rolls back the other packages. The bundle 
>>> will run the uninstall command to roll back packages.
>>>
>>> NOTE: The bundle expects the failing package to roll itself back!
>>>
>>> First, you see the Sparkwave package roll back:
>>>
>>> [2D28:35C0][2019-03-20T12:52:32]i301: Applying rollback package:
>>> Sparkwave, action: Uninstall, path: (null), arguments: '
>>> ARPSYSTEMCOMPONENT="1" MSIFASTINSTALL="7"'
>>> [2D28:35C0][2019-03-20T12:52:35]i319: Applied rollback package:
>>> Sparkwave, result: 0x0, restart: None
>>>
>>> Followed by the Consensys package:
>>>
>>> [1594:1F7C][2019-03-20T12:52:35]i301: Applying rollback package:
>>> Consensys, action: Uninstall, path: C:\ProgramData\Package 
>>> Cache\4F3679442D5925D31D0BDCD863D5E799EB848D2C\Setup.exe, arguments:
>>> '"C:\ProgramData\Package
>>> Cache\4F3679442D5925D31D0BDCD863D5E799EB848D2C\Setup.exe"'
>>> [2D28:35C0][2019-03-20T12:53:13]i319: Applied rollback package:
>>> Consensys, result: 0x0, restart: None
>>>
>>> Then the GazepointControl package which fails to uninstall as it 
>>> returns exit code 0x2:
>>>
>>> [1594:1F7C][2019-03-20T12:53:13]i301: Applying rollback package:
>>> GazepointControl, action: Uninstall, path: C:\ProgramData\Package 
>>> Cache\15368F3BCEDE2502575E7F5D620AC74A6BE4CBC3\Gazepoint_5.3.0.exe,
>>> arguments: '"C:\ProgramData\Package
>>> Cache\15368F3BCEDE2502575E7F5D620AC74A6BE4CBC3\Gazepoint_5.3.0.exe"'
>>> [1594:1F7C][2019-03-20T12:53:19]e000: Error 0x80070002: Process 
>>> returned
>>> error: 0x2
>>> [1594:1F7C][2019-03-20T12:53:19]e000: Error 0x80070002: Failed to 
>>> execute EXE package.
>>> [2D28:35C0][2019-03-20T12:53:19]e000: Error 0x80070002: Failed to 
>>> configure per-machine EXE package.
>>> [2D28:35C0][2019-03-20T12:53:19]i319: Applied rollback package:
>>> GazepointControl, result: 0x80070002, restart: None
>>>
>>> NOTE: The arguments used to uninstall the ExePackages are identical 
>>> to the install arguments! You'll want to set UninstallCommand on 
>>> those ExePackages to tell the bundle how to correctly uninstall them.
>>>
>>> The bundle knows how to uninstall MsiPackages so you don't have to 
>>> tell it how to do that.
>>>
>>> You'll still need to troubleshoot why CDM21228_Setup.exe is 
>>> returning exit code 0x1. If that is a success exit code, then you'll 
>>> want to add an ExitCode elements under your ExePackage element to 
>>> tell the bundle to treat it as a success. You could add more 
>>> ExitCode elements to handle other possible exit codes.
>>>
>>> http://wixtoolset.org/documentation/manual/v3/xsd/wix/exitcode.html
>>>
>>> I assume Gazepoint_5.3.0.exe returned exit code 0x2 during rollback 
>>> because it was already installed but you'll want to check that as well.
>>>
>>> To summarize, your packages are running twice because the bundle 
>>> thinks the last one failed and when it tried to uninstall the 
>>> previous packages it ran the install command because it didn't have a proper uninstall command.
>>>
>>> --
>>> Edwin G. Castro
>>>
>>>
>>> On Wed, Mar 20, 2019 at 10:00 AM Mike Franchitti < 
>>> mfranchitti at redshift-tech.com> wrote:
>>>
>>>> Here you go.
>>>>
>>>>
>>>> On Wed, Mar 20, 2019 at 11:56 AM Edwin Castro <egcastr at gmail.com>
>>>> wrote:
>>>>
>>>>> Can you share logs?
>>>>>
>>>>> --
>>>>> Edwin G. Castro
>>>>>
>>>>>
>>>>> On Wed, Mar 20, 2019 at 8:15 AM Mike Franchitti < 
>>>>> mfranchitti at redshift-tech.com> wrote:
>>>>>
>>>>>> Edwin,
>>>>>>
>>>>>> Thanks a lot - I am now using the DetectCondition & 
>>>>>> InstallCondition properly.
>>>>>>
>>>>>> My script is still trying to execute installers in the chain 
>>>>>> multiple times. To be specific - it asks me to install Gazepoint, Consensys, etc...
>>>>>> two times during a single run of the burn installer...
>>>>>>
>>>>>>
>>>>>>
>>>>>> On Wed, Mar 20, 2019 at 10:43 AM Edwin Castro <egcastr at gmail.com>
>>>>>> wrote:
>>>>>>
>>>>>>> Logs are very helpful in determining what the bundle is doing. 
>>>>>>> Here are some general comments instead...
>>>>>>>
>>>>>>> I think you use DetectCondition to determine if a package is 
>>>>>>> installed.
>>>>>>>
>>>>>>> I think you use InstallCondition to decide whether to install a 
>>>>>>> package that is not installed.
>>>>>>>
>>>>>>> For example, I use DetectCondition to determine if an ExePackage 
>>>>>>> is already installed *but* I use InstallCondition to install the 
>>>>>>> 32-bit package on a 32-bit OS and the 64-bit package on a 64-bit OS.
>>>>>>>
>>>>>>> MsiPackage can already determine if an MSI is already is 
>>>>>>> installed so you probably do not need the RegistrySearch for it. 
>>>>>>> I use InstallCondition with MsiPackage to install the 32-bit 
>>>>>>> package on a 32-bit OS and the 64-bit package on a 64-bit OS.
>>>>>>>
>>>>>>> --
>>>>>>> Edwin G. Castro
>>>>>>>
>>>>>>>
>>>>>>>
>>>>>>> On Wed, Mar 20, 2019, 06:49 Mike Franchitti via wix-users < 
>>>>>>> wix-users at lists.wixtoolset.org> wrote:
>>>>>>>
>>>>>>>> The following script is not working correctly, and I am not 
>>>>>>>> sure how to proceed - if someone could take a look and provide 
>>>>>>>> some feedback I'd appreciate it...
>>>>>>>>
>>>>>>>> My target is to get this working on Windows 10.
>>>>>>>>
>>>>>>>> Here are the problems I've seen so far:
>>>>>>>>
>>>>>>>>    - The generated .exe tries to run some of the installers 
>>>>>>>> listed in the
>>>>>>>>    chain multiple times.
>>>>>>>>    - The Sparkwave installer (which works on it's own) fails to 
>>>>>>>> run if it's
>>>>>>>>    placed AFTER the CDM installer with errors related to 
>>>>>>>> verifying it's hash.
>>>>>>>>    (If I place the Sparkwave installer BEFORE the CDM installer 
>>>>>>>> in the chain
>>>>>>>>    it works correctly)...
>>>>>>>>    - The CDM installer appears to run all the way through, but 
>>>>>>>> upon click
>>>>>>>>    the final "finish" button in that installer the Burn script fails
>>>>>>>>    with Error 0x80070001. I think this is related to it's 
>>>>>>>> attempt to run the
>>>>>>>>    same installers multiple times...
>>>>>>>>
>>>>>>>> Here is my script:
>>>>>>>>
>>>>>>>> <?xml version="1.0" encoding="UTF-8"?> <Wix 
>>>>>>>> xmlns="http://schemas.microsoft.com/wix/2006/wi" xmlns:util="
>>>>>>>> http://schemas.microsoft.com/wix/UtilExtension">
>>>>>>>>   <Bundle Name="Bootstrap" Version="1.0.0.0"
>>>>>>>> Manufacturer="Bootstrap"
>>>>>>>> UpgradeCode="537641ca-e876-4bcb-8d57-c6cdc8940c84">
>>>>>>>>     <BootstrapperApplicationRef 
>>>>>>>> Id="WixStandardBootstrapperApplication.RtfLicense" />
>>>>>>>>
>>>>>>>>     <util:FileSearch
>>>>>>>>       Id="SearchForGazepoint"
>>>>>>>>
>>>>>>>> Path="[ProgramFilesFolder]Gazepoint\Gazepoint\bin\Gazepoint.exe"
>>>>>>>>       Variable="GazepointFound"
>>>>>>>>       Result="exists" />
>>>>>>>>
>>>>>>>>     <util:FileSearch
>>>>>>>>       Id="SearchForConsensys"
>>>>>>>>
>>>>>>>>
>>>>>>>> Path="[ProgramFilesFolder]Shimmer\ConsensysPRO\Consensys_v1.5.0\Consensys.exe"
>>>>>>>>       Variable="ConsensysFound"
>>>>>>>>       Result="exists" />
>>>>>>>>
>>>>>>>>     <util:RegistrySearch
>>>>>>>>       Id="SearchForFTDI"
>>>>>>>>       Root="HKLM"
>>>>>>>>       Key="SYSTEM\CurrentControlSet\Enum\FTDIBUS"
>>>>>>>>       Result="exists"
>>>>>>>>       Variable="FTDIFound"/>
>>>>>>>>
>>>>>>>>     <util:RegistrySearch
>>>>>>>>       Id="SearchForSparkwave"
>>>>>>>>       Root="HKCU"
>>>>>>>>       Key="Software\Spark Neuro\Sparkwave"
>>>>>>>>       Result="exists"
>>>>>>>>       Variable="SparkwaveFound"/>
>>>>>>>>
>>>>>>>>     <Chain>
>>>>>>>>       <PackageGroupRef Id="NetFx472Redist"/>
>>>>>>>>       <ExePackage Id='GazepointControl'
>>>>>>>> SourceFile="../../ExternalSoftware/Gazepoint_5.3.0.exe" Vital='yes'
>>>>>>>> PerMachine='yes' InstallCondition='NOT GazepointFound'/>
>>>>>>>>       <ExePackage Id='Consensys'
>>>>>>>> SourceFile="../../ExternalSoftware/Setup.exe" Vital='yes'
>>>>>>>> PerMachine='yes'
>>>>>>>> InstallCondition='NOT ConsensysFound'/>
>>>>>>>>       <MsiPackage Id='Sparkwave' SourceFile='Sparkwave.msi'
>>>>>>>> Vital='yes'
>>>>>>>> InstallCondition='NOT SparkwaveFound' Visible='yes'
>>>>>>>> DisplayInternalUI='yes'></MsiPackage>
>>>>>>>>       <ExePackage Id='SerialPortDriver'
>>>>>>>> SourceFile="../../ExternalSoftware/CDM21228_Setup.exe" Vital='yes'
>>>>>>>> PerMachine='yes' InstallCondition='NOT FTDIFound'/>
>>>>>>>>     </Chain>
>>>>>>>>   </Bundle>
>>>>>>>> </Wix>
>>>>>>>>
>>>>>>>> _______________________________________________________________
>>>>>>>> _____ WiX Toolset Users Mailing List provided by FireGiant 
>>>>>>>> http://www.firegiant.com/
>>>>>>>>
>>>>>>>>

____________________________________________________________________
WiX Toolset Users Mailing List provided by FireGiant http://www.firegiant.com/



More information about the wix-users mailing list