Сбой сборки UWP и Xamarin без вывода - PullRequest
0 голосов
/ 21 декабря 2018

Я пытался создавать проекты Android и кроссплатформенные проекты, использующие Xamarin в Visual studio.Когда я строю, даже пустой проект, он мгновенно завершается сбоем, не выполняя никакой работы.

В списке нет ошибок или предупреждений.

В окне вывода есть имя проекта и: Build: 0 succeeded, 2 failed, 0 up-to-date, 0 skipped

Когда я запускаю проект, я получаю сообщения, предупреждающие меня о неожиданных сбоях регистратора, и иногда диалоговые окна ссылаются на MuxLogger.Это противоречиво, сообщения немного различаются и иногда вообще не появляются.Вот пример: MuxLogger failure

Кстати, я попытался собрать вручную, чтобы получить больше вывода, и я получил это:

Unhandled Exception: System.TypeLoadException: Could not load type 'Microsoft.Build.Logging.ProfilerLogger' from assembly 'Microsoft.Build, Version=15.1.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a'.
  at System.Signature.GetSignature(Void* pCorSig, Int32 cCorSig, RuntimeFieldHandleInternal fieldHandle, IRuntimeMethodInfo methodHandle, RuntimeType declaringType)
  at System.Reflection.RuntimeMethodInfo.FetchNonReturnParameters()
  at System.Reflection.RuntimeMethodInfo.GetParameters()
  at System.Diagnostics.StackTrace.ToString(TraceFormat traceFormat)
  at System.Environment.GetStackTrace(Exception e, Boolean needFileInfo)
  at System.Exception.GetStackTrace(Boolean needFileInfo)
  at System.Exception.ToString(Boolean needFileLineInfo, Boolean needMessage)
  at System.Exception.ToString()
  at Microsoft.Build.CommandLine.MSBuildApp.Execute(String commandLine)
  at Microsoft.Build.CommandLine.MSBuildApp.Main()

Обратите внимание, что я могу построить много другихТипы проектов, такие как веб-проекты и проекты MonoGame, просто отлично.

1 Ответ

0 голосов
/ 21 декабря 2018

В конечном итоге это оказалось проблемой со старой версией MSBuild, установленной в глобальном кэше сборок (GAC).Чтобы проверить это, сначала откройте экземпляр командной строки разработчика для VS2017.Затем выведите сборки в вашем GAC в файл для удобства просмотра:

gacutil -l >> someFile.txt

Найдите все, что начинается с Microsoft.Build, в частности строки, которые включают Version=15.X (подсказка, этине выводите по порядку, поэтому сортируйте строки в алфавитном порядке).

Удалите все, что начинается с Microsoft.Build, включая Microsoft.Build.Framework, Microsoft.Build и другие.Это не должно устанавливать версии Microsoft.Build с версией <15. Команда: </p>

gacutil -u Microsoft.Build

и

gacutil -u Microsoft.Build.Framework

Это должноразрешите вашему проекту использовать правильную версию MSBuild и успешно скомпилируйте.

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