我正在加入一个新的团队,以前从未使用过.NET,但是我遇到的问题是我什至不知道如何开始诊断。
基本上,我需要构建项目,并且在VisualStudio Code
终端上使用了以下命令:
dotnet msbuild -restore -target:build -p:VisualStudioVersion=16
在第一次运行时,编译器抱怨以下错误:
由于我想首先解决警告,因此我此时并未尝试运行该应用程序。
我再次运行命令(dotnet msbuild -restore -target:build -p:VisualStudioVersion=16
),它进行了编译,但未产生任何警告。
任何对.NET有更多了解的人都能向我介绍为什么会发生这种情况吗?
答案 0 :(得分:5)
为什么
dotnet msbuild
在第一次运行时失败并显示警告,然后第二次成功运行?
一个基本问题是,您将情况描述为真实情况的相反。 MSBuild没有 not “警告失败”。它成功并显示警告。该项目已成功构建,因此成功。
一旦您对工具如何工作的心理模型是正确的,诊断问题就会容易得多。
我再次运行该命令,它进行了编译,但未产生任何警告。
否,它没有再次编译。相反,它什么都没做。构建已经成功构建的项目无济于事。该项目已经建立。
您说您要构建它,它已经构建了,所以我们完成了。 MSBuild应该足够聪明,不会重做已经完成的工作。它不是完美的,但是在不浪费时间重新做工作方面做得很好。
如果要强制从头开始重建项目,包括进行所有分析,通常应使用
/target:Rebuild
不是
/target:Build
如果您希望在不进行重建的情况下将项目恢复为预先构建的状态,通常会这样做
/target:Clean
我遇到了一个我什至不知道如何开始诊断的问题。
那么今天将是阅读项目文件,学习其工作原理以及阅读msbuild文档的好日子:
https://docs.microsoft.com/en-us/visualstudio/msbuild/walkthrough-using-msbuild?view=vs-2019
现在您知道如何开始对其进行诊断:在使用该工具之前,请先阅读项目文件和工具文档。