如何更改MSBuild错误消息语言?

问题描述 投票:8回答:8

我在日语系统上,当我运行MsBuild.exe生成Visual Studio项目时,在输出中混合了日语和英语:

C:\path\to\solution>C:\WINDOWS\Microsoft.NET\Framework\v3.5\msbuild.exe solution.sln
Microsoft (R) Build Engine Version 3.5.30729.1
[Microsoft .NET Framework, Version 2.0.50727.3082]
Copyright (C) Microsoft Corporation 2007. All rights reserved.

Build started 2/18/2010 1:03:04 PM.
Project "C:\path\to\solution.sln" on node 0 (default targets).
  Building solution configuration "Debug|Win32".
プロジェクト : warning PRJ0018: 以下の環境変数が見つかりませんでした:

如何将其全部更改回英语?

visual-studio-2008 msbuild localization
8个回答
8
投票

[要将MSBuild输出的语言更改为英语,只需在实际调用MSBuild之前在同一控制台中调用chcp 850。它会更改控制台的代码页,MSBuild会使用它。


7
投票

我在计算机WIN 8.1上面临类似的问题。它以捷克语安装,后来添加了英语包。结果是从控制台启动的MsBuild是捷克语。我在“区域设置”选项“更改系统区域设置..”中找到了捷克语。切换到英语后,输出为英语。

“区域语言设置”

Windows 10的更新

Region Windows 10


5
投票

刚刚用俄语解决了同样的问题:

我已删除以下目录:

  • c:\ Program Files(x86)\ Microsoft Visual Studio \ 2017 \ Professional \ MSBuild \ 15.0 \ Bin \ amd64 \ ru
  • c:\ Program Files(x86)\ Microsoft Visual Studio \ 2017 \ Professional \ MSBuild \ 15.0 \ Bin \ amd64 \ ru-RU

4
投票

注意:在研究了laurent的输出后,我确实同意Preet Sangha的答案。输出可能来自编译器而不是MSBuild。但是,如果是MSBuild以错误的语言生成消息,例如我的情况,我认为我的答案将对您有用。所以我的回答确实回答了这个问题的标题。


我认为您的邮件来自日语Microsoft.Build.Tasks.resources.dll resource fileMicrosoft.Build.Tasks assembly包含由MSBuild执行的与构建相关的任务。这些任务输出与构建相关的消息。

我认为您有一个或多个日语.NET框架语言包。解决方法是在Windows中卸载所有日语.NET框架语言包中添加删除程序对话框。


我有Norwegian MSBuild输出。当我删除挪威语言包时,我收到标准的英语错误消息。我的挪威资源文件位于:

  • C:\Windows\Microsoft.NET\Framework\v4.0.30319\no
  • C:\Windows\Microsoft.NET\Framework\v4.0.30319\MOF\no
  • C:\Windows\Microsoft.NET\Framework\v4.0.30319\SQL\no
  • C:\Windows\Microsoft.NET\Framework\v4.0.30319\WPF\no
  • C:\Windows\Microsoft.NET\Framework64\v4.0.30319\no
  • C:\Windows\Microsoft.NET\Framework64\v4.0.30319\MOF\no
  • C:\Windows\Microsoft.NET\Framework64\v4.0.30319\SQL\no
  • C:\Windows\Microsoft.NET\Framework64\v4.0.30319\WPF\no

这些文件夹在我卸载了挪威.NET框架语言包之后就删除了。


我认为当您收到标准的英语警告和错误消息时,搜索信息会更容易,因此我总是想删除开发人员工具的本地语言包。


4
投票

eng的环境变量:设置VSLANG = 1033


3
投票

您需要从以下目录中删除本地化子目录(例如,意大利语:“ 1040”,“ it”,“ it_IT”):

c:\ Program Files(x86)\ Microsoft Visual Studio \ 2017 \ Professional \ MSBuild \ 15.0 \ Bin \

c:\ Program Files(x86)\ Microsoft Visual Studio \ 2017 \ Professional \ MSBuild \ 15.0 \ Bin \ amd64 \


1
投票

我怀疑消息是从编译器发送到您的项目的,而不是msbuild本身。但我不知道如何更改。


0
投票

我在构建服务器上多次用UTF-8编码日志文件时遇到问题。这使诸如更改系统语言或删除所有软件的所有本地化之类的解决方案变得不可取。因此,我不得不在控制台中找到一个设置系统语言的选项。

大多数时候,您应该对chcp 437 command文件开头的chcp 437感到满意。这将切换到正式的“硬件”代码页437,该代码页已包含在您的PC BIOS中。但是,即使.cmd,它也包含欧洲语言的字符。

要排除所有语言,除了可读的英语,您应该使用代码页Microsoft calls it "OEM United States",其中包含仅ASCII字符。所有“扩展”字符都将显示为20127(问号)。这是一个极端的解决方案,仅在其他任何方法都无法使用时使用它,因为如果碰巧有任何扩展字符,它将破坏您的输出。我不确定这是个好主意,因为不是OEM字符集,但它对我有用。

© www.soinside.com 2019 - 2024. All rights reserved.