Xamarin vstool build не может найти цели NuGet MSBuild - PullRequest
0 голосов
/ 05 июня 2018

Фон

Я недавно преобразовал свое приложение Xamarin.Forms из PCL в формат Net Standard.Все мои проекты теперь используют PackageReference в файле csproj.Это означает, что больше не нужно package.config или package.json.

. Мы используем TFS 2015 для создания, подписывания и упаковки наших файлов .ipa и .apk.После преобразования стандартные этапы сборки MSBUILD не работают, так как они ищут mdtool, а в новой Visual Studio вместо нее vstool.Итак, я обновил шаги сборки, чтобы использовать новые инструменты через командную строку.

Все мои проекты теперь NetStandard (включая iOS и Android).

Issue

Я могу успешно восстановить пакеты NuGet, используя restore MySolution.sln -force на сервере сборки Mac.Но когда я запускаю vstool build MySolution.sln после этого, я получаю эту ошибку:

error: пакеты NuGet необходимо восстановить перед сборкой.Цели NuGet MSBuild отсутствуют и необходимы для сборки.Цели NuGet MSBuild создаются при восстановлении пакетов NuGet.

Я могу успешно запустить nuget restore и vstool build локально на компьютере сборки.Но только когда TFS запускает команду через агента, оно показывает это сообщение об ошибке.

Setup

Сборки: TFS 2015 на агенте Mac под управлением Visual Studio 7.5

Ответы [ 2 ]

0 голосов
/ 02 июля 2018

Хорошо.Я наконец смог получить успешную сборку iOS на сервере Mac.Это настройка, которая работает,

  • Использование PackageReference в iOS .csproj
  • Нет package.config, project.json или AssemblyInfo.cs файл.
  • Выполнение nuget restore .sln перед сборкой проекта iOS.
  • Построение решения с использованием <path-to-vstool>\vstool build .sln -c:<configuration>

Теперь я работаю на компьютере Windows для установки Android.Как только у меня будет эта работа, я опубликую свои выводы здесь.

0 голосов
/ 06 июня 2018

В зависимости от ошибки и вашего описания, вам также необходимо проверить, имеет ли ваш агент сборки соответствующую возможность для поддержки vsbuild.

Посмотрите на этот связанный вопрос MacOS -Visual Studio Support и попробуйте этот обходной путь:

В качестве обходного пути мы вручную установили переменную Xamarin.iOS в агенте сборки и изменили путь mdtool на этапе сборки Xamarin iOS.to "/ Applications / Visual Studio.app/Contents/MacOS/vstool".

Кроме того, вы также можете попробовать использовать предложение Мэтта в комментарии выше.

...