5

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

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

导致检测到的依赖项未被排除的触发器是什么?部署解决方案能否将其警告视为错误,以使夜间构建无法继续?

4

4 回答 4

1

在放弃并转向WiX之前,我遇到了同样的问题并处理了大约一年。我不得不“双重构建”我的构建也没有帮助,因为 VS2005 的 MSBuild 不适用于部署项目。

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

于 2009-05-06T18:37:30.850 回答
1

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

于 2011-04-02T01:05:22.703 回答
0

The discussion of detected dependency refreshes here may explain the behavior if you're using multiple development environments with the same project:

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

于 2009-05-01T19:08:26.873 回答
0

好的,这比其他任何东西都更像是一个黑客:)

您通常在 Visual Studio 下有 2 个选项:

a) 排除重复的 DLL

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

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

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

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

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

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

而已。您应该不会收到这些 dll 的警告,如果您有任何额外的内容,只需将它们拖到此文件夹中即可。

希望这可以帮助。

-康斯坦丁诺斯

于 2009-03-13T12:22:14.797 回答