[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