我在VS中有一个Web安装项目。我将转而使用WiX,但这是将来的,目前我需要解决以下问题。
我需要从项目中排除一些常见的dll。所以我构建了项目,VS更新了Detected Dependencies列表。我排除它们和设置构建。我用Orca检查文件列表,文件不包含在安装程序中。
但是当我清理输出目录,重新加载解决方案并进行构建时,一些依赖项不显示为排除!所以他们最终进入MSI。 (这就是构建机器上发生的事情)。
我认为问题可能在于这些是二级依赖项:
my app -> NHibernate.dll -> Antlr3.Runtime.dll
(Antlr dll最终进入MSI)。
这是一个错误还是我错过了什么?
答案 0 :(得分:2)
我在msdn上找到了this page,其中 Exclude 标志被重置为 False 的解决办法:
重新打开解决方案时,会再次包含以前排除的文件
从安装项目中排除文件时,您可能会在关闭并重新打开解决方案后看到该文件再次包含在内。如果来自两个不同源位置的同一DLL文件有两个副本,则可能会发生这种情况。
要解决此错误,请更改其中一个文件的“复制本地”属性:
在Solution Explorer中,单击要删除的DLL引用。
在“视图”菜单上,单击“属性窗口”。
将Copy Local属性更改为False。