[wix-users] Updating Assemblies in the Global Assembly Cache (GAC)

Christopher Painter chrpai at iswix.com
Wed Apr 29 10:48:34 PDT 2020


Quick review looks right to me.  What was the AssemblyVersion and AssemblyFileVersion of the old and the new file.  What does the windows installer log show?


________________________________
From: wix-users <wix-users-bounces at lists.wixtoolset.org> on behalf of Rick Papo via wix-users <wix-users at lists.wixtoolset.org>
Sent: Wednesday, April 29, 2020 8:29 AM
To: 'WiX Toolset Users Mailing List' <wix-users at lists.wixtoolset.org>
Cc: Rick Papo <rpapo at comcast.net>
Subject: [wix-users] Updating Assemblies in the Global Assembly Cache (GAC)

I am attempting to update a set of assemblies stored in the GAC through a
previous InstallShield installation.  Since GACUtil.exe cannot be shipped, I
figured I could install updated assemblies with WiX.

There are examples out there on StackOverflow, backed up by some slightly
contradictory documentation on the WiX Toolset website.  From these, I
cobbled together the following script:

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

          <Product Id="*"
            Name="$(var.ProductDesc)"
            Language="1033"
            Version="$(var.ProductVersion)"
            Manufacturer="$(var.ProductManufacturer)"
            UpgradeCode="$(var.UpgradeCode)"
            >

            <Package Id="*"
              Keywords="Installer"
              InstallerVersion="301"
              Compressed="yes"
              InstallScope="perMachine"
              Manufacturer="$(var.ProductManufacturer)"
              Description="$(var.ProductDesc)"
              Comments="$(var.ProductCopyright)"
              />

            <MediaTemplate EmbedCab="yes" />
              <MajorUpgrade DowngradeErrorMessage="A newer version of
[ProductName] is already installed." />

              <Feature Id="ProductFeature" Title="Register Assemblies"
Level="1">
                <ComponentGroupRef Id="CG_GAC" />
              </Feature>

        </Product>

          <Fragment>
            <Directory Id="TARGETDIR" Name="SourceDir">
              <Directory Id="ProgramFilesFolder">
                <Directory Id="COMPANYFOLDER"
Name="$(var.ProductManufacturer)">
                  <Directory Id="PRODUCTFOLDER" Name="$(var.ProductName)">
                  </Directory>
                </Directory>
              </Directory>
            </Directory>
          </Fragment>

          <Fragment>
            <ComponentGroup Id="CG_GAC" Directory="PRODUCTFOLDER">
              <Component Id="CMP_ ASSEMBLY "
Guid="1FE74B2E-F05F-4D67-8FC0-EB2418FD8452">
                <File Id="FIL_ASSEMBLY" Name="Assembly.dll" KeyPath="yes"
Assembly=".net"
                  Source="Assembly.dll" />
              </Component>
            </ComponentGroup>
          </Fragment>

        </Wix>

This built and ran without any visible errors, but the file in the GAC was
not updated.  I turned on installer logging and tried again.  It reported
that the new assembly was the same as the old, and so was not copied.  I
rebuilt the assembly incrementing the build number, and now it doesn't give
the error anymore, but neither does it update the assembly in the GAC.

There are no visible error messages in the installer log file, though the
component ID given on line 675 below is rather odd, to my point of view.

MSI (s) (34:84) [09:20:30:671]: Executing op:
ActionStart(Name=MsiPublishAssemblies,Description=Publishing assembly
information,Template=Application Context:[1], Assembly Name:[2])
MSI (s) (34:84) [09:20:30:672]: Executing op:
AssemblyPublish(Feature=ProductFeature,Component={1FE74B2E-F05F-4D67-8FC0-EB
2418FD8452}[~]3,AssemblyType=1,,AssemblyName=Assembly,version="11.4.0.0",cul
ture="neutral",publicKeyToken="20FF18B5FC0556F7",processorArchitecture="x86"
,)
MSI (s) (34:84) [09:20:30:674]: Executing op:
ActionStart(Name=PublishFeatures,Description=Publishing Product
Features,Template=Feature: [1])
MSI (s) (34:84) [09:20:30:675]: Executing op:
FeaturePublish(Feature=ProductFeature,,Absent=2,Component=S at X9-({_s at .=_r.k~D
TB)
MSI (s) (34:84) [09:20:30:679]: Executing op:
ActionStart(Name=PublishProduct,Description=Publishing product information,)
MSI (s) (34:84) [09:20:30:680]: Executing op: CleanupConfigData()

Any ideas?

--Rick Papo


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



More information about the wix-users mailing list