.NET部署项目的检测到的依赖关系神奇地被取消排除

5

我有一个包含20多个子项目的Visual Studio 2005 .NET解决方案,其中包括一个部署项目。VS2005 .NET部署项目有许多检测到的依赖项,已经手动排除并添加了手动更正的值。

然而,有时这些检测到的依赖关系会神奇地被取消排除,从而触发构建警告: 警告:两个或多个对象具有相同的目标位置(“[targetdir] \”)

是什么导致检测到的依赖关系被取消排除?可以将部署解决方案的警告视为错误,以便夜间构建不会继续吗?


你还在寻找这个问题的答案吗? - cgreeno
我还没有找到更好的解决方案,所以我认为我是。重复包含在构建过程中没有发生。我们已经有3或4个开发人员在开发时遇到了重新包含的情况,我们曾经会惊讶地说那些是怎么回来的。 - BrianH
4个回答

1

当依赖项目在依赖的 DLL 上设置了 "Copy Local" 时,就会发生这种情况。部署/安装项目将源和 DLL 的副本都列为依赖项。


1

我曾经遇到过同样的问题,并在放弃一年后转向WiX。 问题还在于我必须“双重构建”我的构建,因为VS2005的MSBuild无法与部署项目配合使用。

无论如何,您可能希望考虑使用WiX进行安装。


0

谢谢提供链接。我正在使用VS-2005,看起来你链接中的前两个问题在VS-2005中还没有得到解决。不知道2008及以后的版本如何... - BrianH

0

好的,这更像是一个黑客而不是其他什么 :)

通常在Visual Studio下有两个选项:

a)排除重复的DLL
或者
b)将您的重复DLL的条件属性设置为不同的值。

问题是,使用这两种方法,您仍然会发现它们被神奇地重置,并像以前一样收到警告。

对我们有效的解决方案如下:

a)转到设置项目并创建一个自定义文件夹

b)将自定义文件夹的DefaultLocation属性设置为与需要放置这些DLL的位置相同。例如,对于ASP.NET应用程序,该值为[TARGETDIR] \ bin

c)然后将所有重复的dll拖放到此文件夹中,现在您应该不会收到任何警告了。

就是这样。如果您有任何额外的dll,请将它们拖放到此文件夹中,您应该不会收到有关这些dll的警告。

希望这可以帮助到您。

-Konstantinos


问题在于你仍然需要复制两个文件,其中一个可能是不同的(这可能是为什么你会收到警告的原因)。 - BrianH

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接