I didn't see any answer to ´this one, so here goes;
 
Yes, I have tried it. And I got it working, but it did take some handwaving and 
additional utilities. There may be simpler ways, I'm merely decribing what I 
did:
 
For each relevant DLL I added source similar to:
 
<Directory Id='BinDirectory' Name='bin'>
 <Directory Id=mydll.gac' Name='gac'>
  <Component Id=mydll.gac' Guid='GUID-GUID-GUID-GUID-GUID'>
   <File
    Id=mydll.gac'
    Name='mydll.dll'
    Source='$(var.SOURCEBIN)\mydll.dll'
    Assembly=".net"
    KeyPath="yes">
   </File>
  </Component>
 </Directory>
 <Component Id=mydll.bin' Guid='GUID-GUID-GUID-GUID-GUID'>
  <File
   Id='mydll.dll'
   Name='mydll.dll'
   Source='$(var.SOURCEBIN)\mydll.dll'
   KeyPath="yes"
  />
  <File
   Id='mydll.pdb'
   Name='mydll.pdb'
   Source='$(var.SOURCEBIN)\mydll.pdb'
  />
 </Component>
</Directory>

 
I.e. carry the DLL payload twice, once to get the DLL into a directory for 
looking at and one to go into GAC. Suboptimal, but I didn't have to worry about 
all that much data anyway (compared to the size of some of the HUGE packages 
out there :) ).
 
Furtermore, I defined custom actions:
 
<Binary Id='PdbInstaller' SourceFile='$(var.PDBINSTALLER)' />
  <CustomAction
   Id='PdbInstall'
   BinaryKey='PdbInstaller'
   ExeCommand='/debug "/bindir=[BinDirectory]"'
   Return='asyncNoWait'
  />
 
  <InstallExecuteSequence>
   <Custom Action="PdbInstall" After="InstallFinalize">NOT REMOVE AND NOT 
RESUME</Custom>
  </InstallExecuteSequence>

I pass some variables to the wix script, notably SOURCEBIN and PDBINSTALLER 
(full path and filename to the executable).
 
PdbInstaller.exe takes one important parameter, namely the location of the "for 
view only" DLLs. It is also critical that it PdbInstaller.exe is compiled using 
the same version/key as the DLLs.
 
PdbInstaller.exe owns big credit to 
http://geekswithblogs.net/colinbo/archive/2006/03/23/73200.aspx but I must 
admit I simplified it a lot and also chose to use a separate exe-file that 
didn't inherit any framework installe methods. On the plus side, the 
uninstallation removed the dll, its directory AND the pdb-file so while not 
completely kosher it seems to work. ymmv.
 
The /debug-flag to PdbInstaller.exe simply displays what it's doing. Very 
helpful :)
 
--Jesper
 
 
 

________________________________

        From: [EMAIL PROTECTED] [mailto:[EMAIL PROTECTED] On Behalf Of Peli de 
Halleux
        Sent: den 7 februari 2007 06:25
        To: wix-users@lists.sourceforge.net
        Subject: [WiX-users] Placing PDB next to assemblies in the GAC
        
        

        I am looking for a way to place the symbol files (pdb's) next to 
assemblies that are installed in the GAC (to get nice stacktraces). Has anybody 
already tried this?

         

        Thanks, Peli

-------------------------------------------------------------------------
Take Surveys. Earn Cash. Influence the Future of IT
Join SourceForge.net's Techsay panel and you'll get the chance to share your
opinions on IT & business topics through brief surveys-and earn cash
http://www.techsay.com/default.php?page=join.php&p=sourceforge&CID=DEVDEV
_______________________________________________
WiX-users mailing list
WiX-users@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/wix-users

Reply via email to