我刚刚不得不第一次在没有使用Visual Studio的情况下进行一些构建,很明显,关于MSBuild和构建过程,我的知识存在一定的差距。
那么,以下两种构建过程有什么区别呢?
选项1:
dotnet build C:\Dev\trunk\Mvc.sln
这个选项使用“Build Engine version 16.8.3+39993bd9d for .NET” - 我认为这意味着这种方式可以用于.NET Core,因为它没有提到“Framework”?
选项2:
msbuild C:\Dev\trunk\Mvc.sln
此选项使用“Build Engine version 16.8.2+25e4d540b for .NET Framework”。
我的假设是,“dotnet build”命令只是使用MSBuild的简写方式。然而,它们提供的日志记录非常不同,并且它们都会产生不同的结果。
dotnet build
在.NET Core上运行。它们基本上是等效的,尽管存在一些差异(例如,针对.NET Core/5的分析器只能在dotnet build
下运行)。MSBuild可以处理非SDK样式的项目,而dotnet build
只能处理SDK样式的项目(请记住,编译器本身不解释.csproj文件)。 - canton7dotnet build
意味着编译器可以在不支持.NET Framework的目标平台上运行(例如Linux),而且它对于命令行使用来说是一个更好的界面。 - canton7dotnet build
从已安装的 SDK 之一加载编译器,因此您可以通过安装较新的 SDK 来升级它。 - canton7