2009-08-03 48 views
0

我寫一個維克斯安裝程序安裝.NET程序集到GAC。易...維克斯 - 動態註冊程序集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之前,請確保你實現,因爲它試圖解決它可引起至少很多問題。小心。 :) – 2009-08-03 18:55:10

回答

2

沒有,真的沒有。不僅僅是文件必須在MSI中更新。例如,ProductCode(Product/@ Id)對於每個單獨安裝都必須是唯一的。文件表信息都需要更新。我確信還有其他一些我忘記的東西,因爲WiX工具集會處理所有這些事情。

+0

好,這是非常明確的。感謝Rob! – 2009-08-04 16:25:59