Изменение языка сообщений об ошибках MsBuild

Я работаю в японской системе, и когда я запускаю 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: 以下の環境変数が見つかりませんでした:

Как я могу изменить все это обратно на английский?

Спасибо!

9 ответов

Переменная окружения для eng: установите VSLANG=1033

Просто решил ту же проблему с русским языком:

Я удалил следующие каталоги:

  • 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

Чтобы изменить язык вывода MSBuild на английский, просто позвоните chcp 850 в той же консоли до фактического вызова MSBuild. Это изменяет кодовую страницу консоли, и MSBuild использует ее.

Я столкнулся с подобной проблемой на машине WIN 8.1. Он был установлен на чешском языке, а затем был добавлен пакет на английском языке. Результатом было то, что MsBuild стартовала с консоли на чешском языке. Я нашел в настройке региона параметр Изменить системный язык.. был на чешском языке. После перехода на английский выход был на английском.

Настройки языка региона

Вам необходимо удалить подкаталоги локализации (например, для итальянского: "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 \

ПРИМЕЧАНИЕ: после изучения вывода Laurent я согласен с ответом Preet Sangha. Вывод может прийти из компилятора, а не MSBuild. Но если это был MSBuild, который создавал сообщения на неправильном языке, как в моем случае, я думаю, что мой ответ будет работать для вас. Так что мой ответ действительно отвечает названию этого вопроса.


Я думаю, что ваши сообщения приходят от японца Microsoft.Build.Tasks.resources.dll файл ресурсов. Сборка Microsoft.Build.Tasks содержит задачи, связанные со сборкой, которые выполняются MSBuild. Вывод этих задач создает связанные сообщения.

Я думаю, что у вас есть один или несколько японских языковых пакетов.NET Framework. Решение состоит в том, чтобы удалить все языковые пакеты.NET Framework на японском языке в Windows и добавить диалог удаления программ.


У меня был выход норвежского 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 Framework.


Я думаю, что легче искать информацию, когда у вас есть стандартные английские предупреждения и сообщения об ошибках, поэтому я всегда хотел бы удалить локальные языковые пакеты для инструментов разработчика.

У меня была проблема с многократным кодированием лог-файлов с помощью UTF-8 на сервере сборки. Это делает нежелательными такие решения, как изменение языка системы или удаление всех локализаций для всего программного обеспечения. Поэтому я должен был найти возможность установить системный язык в консоли.

Большую часть времени вы должны быть довольны использованием chcp 437 команда в начале вашего .cmd файл. Это переключится на официальную "аппаратную" кодовую страницу 437, которая включена в BIOS вашего компьютера. Однако он включает символы для европейских языков, даже если Microsoft называет их "OEM United States".

Чтобы исключить все языки, кроме читаемого английского, следует использовать кодовую страницу 20127, который содержит только символы ASCII. Все "расширенные" символы будут отображаться как ? (вопросительные знаки). Это экстремальное решение, и используйте его только тогда, когда ничего не работает, так как оно испортит ваш вывод, если в нем появятся какие-либо расширенные символы. Я не уверен, что это хорошая идея, потому что это не OEM-кодировка, но она сработала для меня.

Я подозреваю, что сообщение приходит от компилятора в ваш проект, а не от самой msbuild. Но я не знаю, как это изменить.

Вам необходимо удалить языковой пакет Jp и добавить английский пакет в установщик Visual Studio.

Другие вопросы по тегам