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 上,MSBuild 输出现在使用 UTF-8 编码(如果 DOTNET_CLI_UI_LANGUAGE 已设置),并且支持 UTF-8。

已引入的版本

.NET 8 预览版 5

破坏性变更的类型

此更改为行为更改

更改原因

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

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