我有一个 Visual Studio 2005 .NET 解决方案,它有 20 多个子项目,包括一个部署项目。VS2005 .NET 部署项目有许多检测到的依赖项,这些依赖项已被手动排除并更正了手动添加的值。
但是,有时,这些检测到的依赖项会神奇地取消排除,这会在构建时触发警告:警告:两个或多个对象具有相同的目标位置 ('[targetdir]\')
导致检测到的依赖项未被排除的触发器是什么?部署解决方案能否将其警告视为错误,以使夜间构建无法继续?
我有一个 Visual Studio 2005 .NET 解决方案,它有 20 多个子项目,包括一个部署项目。VS2005 .NET 部署项目有许多检测到的依赖项,这些依赖项已被手动排除并更正了手动添加的值。
但是,有时,这些检测到的依赖项会神奇地取消排除,这会在构建时触发警告:警告:两个或多个对象具有相同的目标位置 ('[targetdir]\')
导致检测到的依赖项未被排除的触发器是什么?部署解决方案能否将其警告视为错误,以使夜间构建无法继续?
在放弃并转向WiX之前,我遇到了同样的问题并处理了大约一年。我不得不“双重构建”我的构建也没有帮助,因为 VS2005 的 MSBuild 不适用于部署项目。
无论如何,您可能需要考虑安装 WiX 之类的东西。
当依赖项目在依赖 DLL 上设置了“复制本地”时,就会发生这种情况。部署/设置项目将 DLL 的源代码和副本列为依赖项。
The discussion of detected dependency refreshes here may explain the behavior if you're using multiple development environments with the same project:
好的,这比其他任何东西都更像是一个黑客:)
您通常在 Visual Studio 下有 2 个选项:
a) 排除重复的 DLL
或
b) 将重复的 DLL 的Condition属性设置为不同的值。
问题是,使用这两种方法,你仍然会让它们神奇地重置并像以前一样收到警告..
对我们有用的是以下解决方案:
a) 转到您的设置项目并创建一个自定义文件夹
b) 将自定义文件夹的DefaultLocation属性设置为与您需要放置这些 DLL 的属性相同。即对于 ASP.NET 应用程序,该值为 [TARGETDIR]\bin
c)然后将所有重复的 dll 拖放到此文件夹中,您现在应该不会收到任何警告。
而已。您应该不会收到这些 dll 的警告,如果您有任何额外的内容,只需将它们拖到此文件夹中即可。
希望这可以帮助。
-康斯坦丁诺斯