[wix-users] Copy full installer to local drive during install
Vanniekerk, Tyrel (GE Healthcare)
tyrel.vanniekerk at ge.com
Tue May 5 09:00:01 PDT 2020
Well, I guess what's a bit unique in my case is I have a custom C# bootstrapper UI and the MSI is a silent install that's run from that. I have a custom command that copies the code at the moment, I just have had weird issues where the file delete command got an access denied error. Very weird.
I considered getting all the bits from what's cached on the application server, but it seems to extract the bootstrapper into a similarly named exe that only contains the bootstrapper and then all the MSI's etc. for the prerequisites are cached separately as well. I need to big exe with all the files, prerequisites etc. still in it, so copying it when the install happens works for now.
Fun with installers. 😊
-----Original Message-----
From: wix-users <wix-users-bounces at lists.wixtoolset.org> On Behalf Of Benny Bürger via wix-users
Sent: Monday, May 4, 2020 10:01 AM
To: WiX Toolset Users Mailing List <wix-users at lists.wixtoolset.org>
Cc: Benny Bürger <buerger at simba.de>
Subject: EXT: Re: [wix-users] Copy full installer to local drive during install
Hi,
I have a similar setup.
The msi installfile is copied to a specific location if the installation is on the databaseserver:
In product.wxs:
<Feature Id="UpdateFile" Level="0" >
<ComponentGroupRef Id="CopyMsiFileToSBCache"/>
<Condition Level="1">
<![CDATA[INSTALLDATABASE~="true" AND NOT PATCH AND (REINSTALLMODE="" OR REINSTALLMODE><"v" OR REINSTALLMODE="cmuse")]]></Condition>
</Feature>
MsiUpdateFile.wxs:
<?xml version="1.0" encoding="utf-8"?>
<Wix xmlns="http://schemas.microsoft.com/wix/2006/wi">
<?include $(var.ProjectDir)config.wxi?>
<Fragment>
<DirectoryRef Id="INSTALLFOLDER" />
</Fragment>
<Fragment>
<ComponentGroup Id="CopyMsiFileToSBCache">
<Component Id="MsiFile" Guid="2871376D-EB77-4D50-9A32-E1A54466A062" Directory="INSTALLFOLDER">
<RemoveFile Id="MsiFileRemove" Property="SBCACHECLIENTUPDATELOCATION" Name="HybridShell.Setup.msi" On="both"/>
<RemoveFile Id="VersionFileRemove" Property="SBCACHECLIENTUPDATELOCATION" Name="ClientUpdateVersion.xml" On="both"/>
<RemoveFolder Id="RemoveFolderUpdateClient" Property="SBCACHECLIENTUPDATELOCATION" On="uninstall"/>
<CopyFile Id="MsiFileCopy" SourceProperty="SOURCEMSIFILE" DestinationProperty="SBCACHECLIENTUPDATELOCATION" />
<CreateFolder/>
</Component>
</ComponentGroup>
</Fragment>
</Wix>
Using the ClientUpdateVersion.xml file I can easily check whether the client needs an update without querying the database (useful in some occasions)
I hope this helps.
Benny
____________________________________________________________________
WiX Toolset Users Mailing List provided by FireGiant http://www.firegiant.com/
More information about the wix-users
mailing list