I haven't done this with WiX but I have done it with InstallShield.  In 
that case instead of making the unmanaged DLL a keyfile of it's own 
component I made it a companion file of the managed assembly that was being 
installed to the GAC.


In that situation MSI and/or .NET (fusion API) figured out the relationship 
and the two files were published atomically into the GAC as expcted.


I don't see the wxs snippet that you say followed so I'm not sure what you 
are currently doing in WiX.

----------------------------------------

From: "Daniel Wenqing Cai" <danielw...@yahoo.com>

Sent: Sunday, January 15, 2012 5:10 PM

To: wix-users@lists.sourceforge.net

Subject: [WiX-users] GAC .NET assembly along with its dependent .DLL 
library


Hi, 


I am new to WiX. I have a special situation that I need some help. 


My problem is, my .NET assembly needs to be deployed to GAC, but the 
assembly has a dependency on a third-party unmanaged library which is 
written by Microsoft. I need to deploy the .NET assembly to GAC, at the 
same time, the unmanaged library should go to the same GAC folder. 


I have tried many different options with no success. The following is the 
trimmed down version of my .wxs file. 

            

            <Directory Id="DummyGACFolder" Name="DummyGACFolder">


                <Component Id="MSID40_GAC" 
Guid="6D399A09-0D8C-4C21-B69B-F4A369D168C5">

                    <File Id="msid40.dll" Name="msid40.dll" 
Source="..\..\lib\msid40.dll" KeyPath="no" Vital="yes" 
CompanionFile="MyHelper_GAC_FILE" />

                </Component>

                <Component Id="MyHelper_GAC" 
Guid="0A9E1305-4BC1-4E2E-8AF9-92C18E561C60">

                    <File Id="MyHelper_GAC_FILE" Name="MyHelper.dll" 
KeyPath="yes" Source="$(var.MyHelper.TargetPath)" Assembly=".net" />

                </Component>

            </Directory>

I also tried different combinations of AssemblyApplication and 
AssemblyManifest, none of them seems to serve this purpose. 


I have been able to use GACUTIL /i MyHelper.dll command line to deploy them 
together to GAC without problem. I can see the two files (MyHelper.dll and 
msid40.dll) in the GAC folder. 


The above .wxs does deploy MyHelper.dll to GAC, but not the dependent 
library (msid40.dll). 


Can someone please point me to the right direction? 


Thanks,

Daniel

----------------------------------------------------------------------------
--

RSA(R) Conference 2012

Mar 27 - Feb 2

Save $400 by Jan. 27

Register now!

http://p.sf.net/sfu/rsa-sfdev2dev2

_______________________________________________

WiX-users mailing list

WiX-users@lists.sourceforge.net

https://lists.sourceforge.net/lists/listinfo/wix-users


------------------------------------------------------------------------------
RSA(R) Conference 2012
Mar 27 - Feb 2
Save $400 by Jan. 27
Register now!
http://p.sf.net/sfu/rsa-sfdev2dev2
_______________________________________________
WiX-users mailing list
WiX-users@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/wix-users

Reply via email to