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

Edwin Castro egcastr at gmail.com
Wed Mar 20 21:22:33 PDT 2019


This bundle doesn't check bitness so both would be the answer.

In reality, this was not executing the chain twice. It only looked that way
because the uninstall commands were not specified so when it tried to
rollback it seemed like it was trying to install the packages again.

--
Edwin G. Castro


On Wed, Mar 20, 2019, 18:40 Adnan Shaheen via wix-users <
wix-users at lists.wixtoolset.org> wrote:

> Is it trying to execute the chain multiple times for 32bit bundle or 64bit,
> or both?
>
> Regards:
> Adnan Shaheen.
>
>
> On Wed, 20 Mar 2019 at 16:40, Edwin Castro via wix-users <
> wix-users at lists.wixtoolset.org> wrote:
>
> > Info on RollbackBoundary:
> >
> >
> http://wixtoolset.org/documentation/manual/v3/xsd/wix/rollbackboundary.html
> >
> >
> http://windows-installer-xml-wix-toolset.687559.n2.nabble.com/What-is-a-rollback-boundary-td7579098.html
> >
> > There's Bootstrapping tutorial on the FireGiant website but it doesn't
> > really explain how RollbackBoundary works. ;-)
> >
> > https://www.firegiant.com/wix/tutorial/net-and-net/bootstrapping/
> >
> > I also see that Chain has a DisableRollback attribute.
> >
> > http://wixtoolset.org/documentation/manual/v3/xsd/wix/chain.html
> >
> > I'd use Chain/@DisableRollback with caution.
> >
> > --
> > Edwin G. Castro
> >
> >
> > On Wed, Mar 20, 2019 at 10:58 AM Rob Mensching <rob at firegiant.com>
> wrote:
> >
> > > 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/
> > >
> >
> > ____________________________________________________________________
> > 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