我想GAC已经存在于目标机器上的程序集,我知道这个程序集在每台机器上的位置(你可以假设,该路径对所有目标机器都是静态的,不会改变,而且我是这个程序集的所有者)我不希望将程序集包含在MSI中作为GAC,因为它可以随每个解决方案部署而改变,并且我们不希望每次都修改我们的设置。我尝试将<File>
标记与Assembly =“。net”
<File
Id="Assembly.dll"
Name="Assembly.dll"
Assembly=".net"
Source="Assembly.dll"
KeyPath="yes" >
</File>
但是使用File将我的程序集嵌入MSI中。关于如何告诉MSI只在特定位置查找装配而不包括它的任何想法?
答案 0 :(得分:0)
Windows Installer不支持。目前还不清楚为什么你想把别人的文件放到GAC中(如果是你的文件,为什么不把它放在GAC中开始?)。 :)
答案 1 :(得分:0)
看起来像一个奇怪的请求,但这样做的方法是将一个脚本/批处理文件写入GAC文件。在没有MSI的情况下自行测试。工作之后,将脚本包含在MSI中,然后将脚本作为自定义操作执行以在安装时执行。您还希望在卸载时将其从GAC中删除。
如果您使用的是Visual Studio安装项目,请右键单击该项目,然后选择“视图” - >“自定义操作”。从那里,它将允许您为相应的事件添加操作(安装,卸载等)。