2009-08-03 9 views
0

Ich schreibe ein Wix-Installationsprogramm, um .NET-Assemblys im GAC zu installieren. Einfach ...Wix - Assemblys für GAC dynamisch registrieren

Meine Frage ist: Ist es möglich, dieses Szenario zukunftssicher zu machen, damit ich ALLE in einem bestehenden Netzwerkordner gefundenen Baugruppen ziehen und registrieren kann - ohne die genauen Baugruppennamen fest codieren zu müssen? Dies würde es mir ermöglichen, ein einziges MSI zu erstellen, das in Zukunft immer wieder verwendet werden könnte.

Rechts meinen Code Punkte nun zu einer individuellen DLL und sieht wie folgt aus:

<?xml version="1.0" encoding="UTF-8"?> 
<Wix xmlns="http://schemas.microsoft.com/wix/2006/wi"> 
    <Product Id="16c27e1f-8f59-40bc-9ce6-ba816eae4323" Name="GACInstaller" Language="1033" Version="1.0.0.0" Manufacturer="GACInstaller" UpgradeCode="7fb35788-63aa-4cb1-9ad2-fd965cdeb7c8"> 
    <Package InstallerVersion="200" Compressed="yes" /> 

     <Media Id="1" Cabinet="media1.cab" EmbedCab="yes" /> 

     <Directory Id="TARGETDIR" Name="SourceDir"> 
      <Directory Id="ProgramFilesFolder"> 
       <Directory Id="INSTALLLOCATION" Name="GACInstaller"> 
        <Component Id="ProductComponent" Guid="ae2bb9bd-f8d6-4060-b25b-8147fac155d6"> 
      <File Id='my_assembly' Name='my_assembly.dll' KeyPath='yes' Assembly='.net' Source='C:\my_assembly.dll' /> 
        </Component> 
       </Directory> 
      </Directory> 
     </Directory> 

     <Feature Id="ProductFeature" Title="GACInstaller" Level="1"> 
      <ComponentRef Id="ProductComponent" /> 
    </Feature> 
    </Product> 
</Wix> 
+0

Bevor Sie das GAC installieren, vergewissern Sie sich, dass es mindestens so viele Probleme verursacht, wie es zu lösen versucht. Achtung. :) –

Antwort

2

Nein, wirklich nicht. Mehr als nur die Datei muss im MSI aktualisiert werden. Zum Beispiel muss der ProductCode (Product/@ Id) für jede einzelne Installation eindeutig sein. Die Dateitabelleninformationen müssen alle aktualisiert werden. Ich bin sicher, es gibt noch andere Dinge, die ich vergesse, da sich das WiX-Toolset um alles kümmert.

+0

Nun, das ist ziemlich definitiv. Danke Rob! –