.Net部署项目的检测到的依赖关系神奇地排除在外

时间:2009-02-17 16:29:58

标签: .net msbuild dependencies deployment-project

我有一个Visual Studio 2005 .NET解决方案,它有20多个子项目,包括一个部署项目。 VS2005 .NET部署项目具有许多检测到的依赖关系,这些依赖关系已被手动排除,并且手动添加了更正值。

但有时,这些检测到的依赖项会被神奇地排除在外,这会在构建时触发警告: 警告:两个或多个对象具有相同的目标位置('[targetdir] \')

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

4 个答案:

答案 0 :(得分:1)

我有同样的问题并且在放弃并转移到WiX之前处理了大约一年。由于MSBuild for VS2005无法与部署项目一起使用,因此我不得不“双重构建”我的构建也没有帮助。

无论如何,您可能需要考虑安装WiX之类的东西。

答案 1 :(得分:1)

当依赖项目在依赖DLL上设置“复制本地”时,会发生这种情况。部署/安装项目将DLL的源和副本都列为依赖项。

答案 2 :(得分:0)

好的,这比其他任何事情更像是hack:)

您通常在visual studio下有2个选项:

a)排除重复的DLL

b)将重复的DLL的 Condition 属性设置为不同的属性。

问题在于,使用这两种方法,你仍然会让它们神奇地重置并像以前一样得到警告..

对我们有用的是以下解决方案:

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

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

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

就是这样。你不应该得到那些dll的警告,如果你有任何额外的只是将它们拖到这个文件夹中。

希望这有帮助。

-Konstantinos

答案 3 :(得分:0)

如果您在同一个项目中使用多个开发环境,那么此处对检测到的依赖关系刷新的讨论可以解释该行为:

http://www.xmission.com/~legalize/msi/known-bugs-2003.html