2009-08-03 52 views
0

GACに.NETアセンブリをインストールするためのWixインストーラを作成しています。簡単に...Wix - GACへのアセンブリの動的登録

私の質問は次のとおりです。既存のネットワークフォルダにあるアセンブリをすべて取り出して、それぞれのアセンブリを登録できるように、正確なアセンブリ名をハードコードする必要はありませんか?これにより、今後も何度も何度も何度も再利用できる単一のMSIを作成することができます。今

私のコードの個々のDLLへのポイントとは次のようになります。

<?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

GACにインストールする前に、少なくとも解決しようとする問題が発生する可能性があることを確認してください。注意してください。 :) –

答えて

2

いや、そうでもありません。単にMSIでファイルを更新する必要があります。たとえば、ProductCode(Product/@ Id)はインストールごとに一意である必要があります。ファイルテーブル情報をすべて更新する必要があります。私は、WiXツールセットがそれをすべて処理しているので、私が忘れている他のことがあると確信しています。

+0

まあ、それはかなり決定的です。おかげでロブ! –

関連する問題