2009-08-03 47 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