[wix-users] Installing 2 versions of a DLL in the GAC

Charles Gallo [9Dots Management] CGallo at ixdots.com
Mon Jul 25 14:45:14 PDT 2016


Hi,
Back to a question I asked about a week ago (finally go further time to work on my installer)

One of the big issues I have with my program is that due to external dependencies of my program (various versions) I need to install TWO copies of the same DLL in the GAC - Lets call them Version 1.0 and version 1.3

When I build an installer that includes only ONE of the DLLs, I have NO problem

when I use this

    <Directory Id="TARGETDIR" Name="SourceDir">
          <Component Id="myDllVersion10" Guid="{0E56A5D9-xxxxx}" >
            <File Id="MyDllVersion10" KeyPath="yes" Name="myDLL.dll" Assembly=".net" Source="C:\MyDll\Version10\myDll.dll" />
          </Component>
          <Component Id="myDllVersion13"  Guid="{C15BC12B-xxxx}" >
            <File Id="myDllVersion13"  KeyPath="yes" Name="myDll.dll" Assembly=".net" Source="C:\MyDll\Version13\MyDll.dll" />
          </Component>
      </Directory>

       <Feature Id="featureApiDll" Title="My API DLLs" Level="1">
         <ComponentRef Id="myDllVersion10" />
         <ComponentRef Id="myDllVersion13" />
     </Feature>

I get two errors:

ICE30: The target file 'fq4hmlbg.dll|MyDll.dll' is installed in '[TARGETDIR]\' by two different components on an LFN system: MyDLLVersion10' and 'MyDllVersion13'. This breaks component reference counting.

(the other being the reciprocal)

I can understand WHY it is complaining, but the question is
Is there a way to install BOTH versions of the DLL with the same installer? (after all, the GAC allows both versions)  It is fairly simple to do with 2 installers, but also fairly ugly.



Charles Gallo | 9 DOTS
Senior Director
1100 E Hector Street| Ste. 245 | Conshohocken, PA 19428
C: 917.301.2749
cgallo at ixdots.com<mailto:jflorio at ixdots.com> | ixdots.com<http://www.ixdots.com/>





More information about the wix-users mailing list