MSBuild 遵循 DOTNET_CLI_UI_LANGUAGE
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 上,如果设置了 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
。