MSBuild 现在尊重 DOTNET_CLI_UI_LANGUAGE
环境变量,并使用其 DOTNET_CLI_UI_LANGUAGE
命令行输出指定的语言。 此更改会影响msbuild.exe
、dotnet build
和dotnet 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=
。