MSBuild 遵循 DOTNET_CLI_UI_LANGUAGE

MSBuild 现在遵循 DOTNET_CLI_UI_LANGUAGE 环境变量,并使用 DOTNET_CLI_UI_LANGUAGE 指定的语言进行命令行输出。 此更改会影响 msbuild.exedotnet builddotnet msbuild 命令的输出。

旧行为

以前,MSBuild 命令行输出始终使用操作系统 (OS) 语言,并使用其自己的编码,而不考虑 DOTNET_CLI_UI_LANGUAGE

新行为

MSBuild 使用 DOTNET_CLI_UI_LANGUAGE 指定的语言而不是 OS 语言进行命令行输出。

在 Windows 上,如果设置了 DOTNET_CLI_UI_LANGUAGE 并且支持 UTF-8,则 MSBuild 输出现在使用 UTF-8 编码。

引入的版本

.NET 8 预览版 5

中断性变更的类型

此更改为行为更改

更改原因

以前,dotnet build 等命令的输出是 DOTNET_CLI_UI_LANGUAGE 语言(用于 .NET SDK 输出)和 OS 语言(用于 MSBuild 输出)的混合。 例如,“生成成功/失败”输出使用 OS 语言。 实施此更改后,.NET SDK 和 MSBuild 输出的语言是一致的。

如果要保留旧行为,请使用命令 set DOTNET_CLI_UI_LANGUAGE=(或供 shell 更改环境变量的类似命令)取消设置 DOTNET_CLI_UI_LANGUAGE