Note that there are some explanatory texts on larger screens.

plurals
  1. POWIX deploy two assemblies to GAC
    primarykey
    data
    text
    <p>Using WIX, and trying to install two of the same assemblies, one for <strong>.Net35</strong> and the other <strong>.Net40</strong>. I am using two separate components, however WIX is preventing the project from compiling.</p> <pre><code> &lt;Directory Id="GAC40" Name="GAC"&gt; &lt;Component Id="MyDllServicesModuleGac40Component" Guid="307675AA-8AEC-473B-A78A-FB362CCEDE2A" Win64="yes"&gt; &lt;File Id="MyDllNet40DllGac" Name="MyDll.dll" KeyPath="yes" Assembly=".net" Source="..\MyDll\bin\Net40\MyDll.dll" /&gt; &lt;/Component&gt; &lt;/Directory&gt; &lt;Directory Id="GAC35" Name="GAC"&gt; &lt;Component Id="MyDllServicesModuleGac35Component" Guid="47E6BD1B-25CD-466D-945E-06DCF0F2A269" Win64="yes"&gt; &lt;File Id="MyDllNet35DllGac" Name="MyDll.dll" KeyPath="yes" Assembly=".net" Source="..\MyDll\bin\Net35\MyDll.dll" /&gt; &lt;/Component&gt; &lt;/Directory&gt; </code></pre> <p>The error I receive is:</p> <blockquote> <p>Error 29 ICE30: The target file 'MyDll.dll' is installed in '[TARGETDIR]\GAC\' by two different components on an SFN system: 'MyDllServicesModuleGac40Component.DDD7D974_FE9C_4BA3_BDD3_A1A3A23F8057' and 'MyDllServicesModuleGac35Component.DDD7D974_FE9C_4BA3_BDD3_A1A3A23F8057'. This breaks component reference counting. D:\PROJECTS\MyDll.Experimental.3.0.0\Project\MyDll\MyDll.Wix.Services\MergeModule.wxs 34 1 MyDll.Wix.Services</p> </blockquote> <p>The installer should be able to detect that the .Net35 dll gets installed to the GAC at C:\Windows\assembly, while the .Net40 dll gets installed to the GAC at C:\Windows\Microsoft.NET\assembly.</p> <p>Renaming the DLLs is not an option.</p> <p>Thanks!</p> <p><strong>UPDATE</strong></p> <p>Naturally I came up with a solution just after posting, seem wrapping the components in additional elements allowed me to get this to work. Later I read Tom Blodget's post so that is correct.</p> <pre><code> &lt;Directory Id="GAC1" Name="GAC"&gt; &lt;Directory Id="GAC40" Name="GAC"&gt; &lt;Component Id="MyDllServicesModuleGac40Component" Guid="307675AA-8AEC-473B-A78A-FB362CCEDE2A" Win64="yes"&gt; &lt;File Id="MyDllNet40DllGac" Name="MyDll.dll" KeyPath="yes" Assembly=".net" Source="..\MyDll\bin\Net40\MyDll.dll" /&gt; &lt;/Component&gt; &lt;/Directory&gt; &lt;/Directory&gt; &lt;Directory Id="GAC2"&gt; &lt;Directory Id="GAC35" Name="GAC"&gt; &lt;Component Id="MyDllServicesModuleGac35Component" Guid="FD74504A-6FE9-488E-9086-9DAD3024B35D" Win64="yes"&gt; &lt;File Id="MyDllNet35DllGac" Name="MyDll.dll" KeyPath="yes" Assembly=".net" Source="..\MyDll\bin\Net35\MyDll.dll" /&gt; &lt;/Component&gt; &lt;/Directory&gt; &lt;/Directory&gt; </code></pre> <p>Well, hope it helps someone!</p>
    singulars
    1. This table or related slice is empty.
    1. This table or related slice is empty.
    plurals
    1. This table or related slice is empty.
    1. This table or related slice is empty.
    1. This table or related slice is empty.
    1. This table or related slice is empty.
 

Querying!

 
Guidance

SQuiL has stopped working due to an internal error.

If you are curious you may find further information in the browser console, which is accessible through the devtools (F12).

Reload