我知道在微软开发者的世界里,一切背后仍然有 MSBuild 的支持。但是,为什么在 Windows 终端中,命令dotnet build -h
和dotnet build -help
会给出不同的结果呢?第一个版本-h
有 和 的替代方案,-?
但--help
在编写时却-help
显示了完全不同的帮助和选项:
PS C:\> dotnet build -h
Description:
.NET-Generator
Nutzung:
dotnet build [<PROJECT | SOLUTION>...] [options]
Argumente:
<PROJECT | SOLUTION> Das Projekt oder die Projektmappendatei, die verwendet werden soll. Wenn keine Datei angegeben ist, durchsucht der Befehl das aktuelle Verzeichnis nach einer Datei.
Optionen:
--ucr, --use-current-runtime Verwenden Sie die aktuelle Runtime als Zielruntime.
...
相对:
PS C:\> dotnet build -help
Syntax: MSBuild.exe [Optionen] [Projektdatei | Verzeichnis]
Beschreibung: ....
Optionen: Beachten Sie, dass Sie Optionen über
"-option", "/option" und "--option" angeben können.
...
dotnet build
当我编写 时,如何知道命令使用的工具集和版本dotnet build mysolution.sln
?这两种版本似乎都可以?它们的区别在哪里?Visual Studio 2022 使用哪个构建系统?(或者我如何找到它们)?接下来,如何确保构建服务器上使用的是相同的工具?
该
dotnet
实用程序是跨平台的,包含一系列可通过子命令使用的 .NET 开发工具。与问题相关,
dotnet
包含其自身的嵌入副本msbuild
。有一个dotnet msbuild
子命令,并且dotnet build
和dotnet clean
子命令也是 MSBuild。使用 MSBuild 的子命令接受 MSBuild 命令行选项。-?
、-h
、 和--help
是实用程序可识别的选项dotnet
。-help
不是可识别的选项,dotnet
而是传递给内部 MSBuild。-help
是可识别的msbuild
选项。您可以在问题报告的命令输出中看到这一点。dotnet build -h
报告和
dotnet build -help
报告请注意,尽管您运行了该
dotnet
命令,但-help
语法却是这样的MSBuild.exe
。用于
dotnet --version
获取.NET的SDK版本。用于
dotnet msbuild --version
获取嵌入式 MSBuild 的版本。要获取的主机版本
dotnet
以及可用的 SDK 和运行时,请使用dotnet --info
。msbuild --version
如果安装了 Visual Studio 某个版本,就会有一个独立的 MSBuild 副本可用。如果你猜它会提供具体版本,那你猜对了。