我正在编写Wix安装程序以将.NET程序集安装到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 :(得分:3)
不,不是真的。不仅仅是文件必须在MSI中更新。例如,ProductCode(Product / @ Id)对于每个单独的安装都必须是唯一的。所有文件表信息都需要更新。我确信还有其他我忘记的事情,因为WiX工具集会处理这一切。