我们正在使用Jenkins使用msbuild构建项目。
我添加了对现有项目的项目引用,但忘了将新项目添加到所有解决方案文件中。
我承诺,但詹金斯告诉我一切正常。 我在命令行上试过了:
begin
在Jenkins和我的开发机器上有一个完全清理的工作目录,工作正常。输出告诉我,msbuild找到了该项目并构建它。
但是,如果我打开Visual Studio 2017并尝试构建该解决方案,它会告诉我无法找到依赖项目。
这是正确的。
如何强制msbuild仅构建解决方案文件中指定的项目,以便我们能够找到错过该新项目的所有解决方案?
BTW:我们不需要提示如何找到需要包含该新项目的所有解决方案。找到解决方案非常简单。
答案 0 :(得分:0)
如何强制msbuild仅构建解决方案文件中指定的项目,以便我们能够找到错过该新项目的所有解决方案?
避免MSBuild重建解决方案文件中列出的所有依赖项的默认行为的正确方法是将BuildProjectReferences
属性设置为false,因此构建命令行应为:
MSBuild Test.sln /t:Rebuild /p:Configuration=Debug /p:BuildProjectReferences=false
使用此命令行后,MSBuild将获得与VS相同的错误,因此我们能够找到错过该新项目的所有解决方案
注意:BuildProjectReferences
将检查解决方案文件中列出的所有依赖项,因此请保持其值为true,除非用于检查缺少的依赖项。
希望这有帮助。