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

Rick Papo rpapo at comcast.net
Wed Apr 29 12:11:51 PDT 2020


I gave an excerpt from the log already.  I didn't see any error messages,
though it did look like some of the logging code may have had problems.

 

The assembly version is 11.4.0.0.  The AssemblyFileVersion of the original
file was 11.4.2838 (or something like that) and the new file has 11.4.4001.
When they were same, no update occurred, but at least there was a message in
the log saying why.  As things are, there doesn't appear to be any error
message, at least that I can see (see further down this message chain).  And
yet the file doesn't get updated.

 

--Rick

 

From: Christopher Painter [mailto:chrpai at iswix.com] 
Sent: Wednesday, April 29, 2020 1:49 PM
To: 'WiX Toolset Users Mailing List' <wix-users at lists.wixtoolset.org>
Cc: Rick Papo <rpapo at comcast.net>
Subject: Re: [wix-users] Updating Assemblies in the Global Assembly Cache
(GAC)

 

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 < <mailto:wix-users-bounces at lists.wixtoolset.org>
wix-users-bounces at lists.wixtoolset.org> on behalf of Rick Papo via wix-users
< <mailto:wix-users at lists.wixtoolset.org> wix-users at lists.wixtoolset.org>
Sent: Wednesday, April 29, 2020 8:29 AM
To: 'WiX Toolset Users Mailing List' <
<mailto:wix-users at lists.wixtoolset.org> wix-users at lists.wixtoolset.org>
Cc: Rick Papo < <mailto:rpapo at comcast.net> 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>
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-(
<mailto:%7b_s at .=_r.k~D> {_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/> http://www.firegiant.com/




More information about the wix-users mailing list