Изменение языка сообщений об ошибках MsBuild - PullRequest
7 голосов
/ 18 февраля 2010

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

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

Спасибо!

Ответы [ 8 ]

8 голосов
/ 20 августа 2012

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

6 голосов
/ 12 июня 2015

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

Region language settings

5 голосов
/ 28 июня 2017

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

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

  • 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 голосов
/ 30 января 2018

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

4 голосов
/ 11 августа 2012

ПРИМЕЧАНИЕ: После изучения вывода 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.


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

3 голосов
/ 01 сентября 2018

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

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

0 голосов
/ 15 декабря 2017

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

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

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

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...