Изменение языка сообщений об ошибках 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 ответов
Просто решил ту же проблему с русским языком:
Я удалил следующие каталоги:
- 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.