Проблема сборки VSTS проекта .NET Standard 2.0 Xamarin.iOS

В настоящее время я пытаюсь обновить проект Xamarin.Forms для использования .NET Standard 2.0. Это прошло нормально для Android, но я застрял с версией для iOS. Для сборки iOS мы используем On-Primise MacMini в качестве агента сборки int VSTS. Теперь при создании решения я получаю сообщение об ошибке ниже.

=================================

.... намного больше ошибок, как показано ниже ...

2017-11-21T11: 39: 43.8920830Z ViewModels / DashboardViewModel.cs (66,35): ошибка CS0012: тип «Объект» определен в сборке, на которую нет ссылки. Вы должны добавить ссылку на сборку netstandard, Version = 2.0.0.0, Culture = нейтральный, PublicKeyToken = cc7b13ffcd2ddd51. [/Users/Admin/BuildAgent/_work/3/s/xxx.App/xxx.Core.csproj] 2017-11-21T11: 39: 43.9014700Z ViewModels / DashboardViewModel.cs (66,73): ошибка CS0012: Тип «Объект» определяется в сборке, на которую нет ссылок. Вы должны добавить ссылку на сборку netstandard, Version = 2.0.0.0, Culture = нейтральный, PublicKeyToken = cc7b13ffcd2ddd51. [/Users/Admin/BuildAgent/_work/3/s/xxx.App/xxx.Core.csproj] 2017-11-21T11: 39: 43.9036150Z ViewModels / DashboardViewModel.cs (66,93): ошибка CS0012: Тип «Объект» определяется в сборке, на которую нет ссылок. Вы должны добавить ссылку на сборку netstandard, Version = 2.0.0.0, Culture = нейтральный, PublicKeyToken = cc7b13ffcd2ddd51. [/Users/Admin/BuildAgent/_work/3/s/xxx.App/xxx.Core.csproj] 2017-11-21T11: 39: 43.9053280Z 2017-11-21T11: 39: 43.9083060Z 6 предупреждений 2017 г. -11-21T11: 39: 43.9107960Z 47 Ошибки (и) 2017-11-21T11: 39: 43.9116100Z 2017-11-21T11: 39: 43.9131830Z Истекшее время 00: 00: 59.23 2017-11-21T11: 39: 43.9327960 Z ## [error] Задача Xamarin.iOS завершилась с ошибкой Ошибка: /Library/Frameworks/Mono.framework/Versions/Current/Commands/msbuild завершилась неудачно с кодом возврата: 1. Инструкции по настройке определения сборки см. В https://go.microsoft.com/fwlink/?LinkId=760847. 2017-11-21T11: 39: 43.9575950Z [команда] / usr / bin / security delete-keychain /Users/Admin/BuildAgent/_work/3/s/_xamariniostasktmp.keychain 2017-11-21T11: 39: 44.2658340Z ## [section] Завершение: построение решения Xamarin.iOS xxx.sln

=================================

Эти выходные данные получены из следующего определения сборки:

Определение сборки CI

Теперь я поискал в Интернете и нашел возможные решения:

  • Обновите Visual Studio на MacMini
  • Обновите XCode на MacMini
  • Установите .NET Core 2.x SDK на MacMini
  • Добавить пакет NuGet .NET Standard 2.x в проект Xamarin.IOS
  • Добавить предварительный выпуск пакета NuGet стандартной библиотеки .NET в проект Xamarin.iOS (невозможно)
  • Вручную ссылку netstandard.dll на проект Xamarin.iOS
  • Удалить аргумент установки (не использовать)

Но всего этого было недостаточно, чтобы решить проблему. Теперь я не эксперт в использовании Mac. На самом деле я никогда не касался ни одного до этого выпуска ... Так что, возможно, я сделал здесь что-то не так ...

Но мне удалось получить некоторую информацию о версиях всех продуктов на MacMini:

========= Visual Studio =========

Visual Studio Community 2017 для Mac Версия 7.2.2 (сборка 11) UUID установки: b43353ef-651c-468b-8b7d-3f1714586419 Время выполнения: Mono 5.4.1.6 (2017-06 / 1f4613aa1ac) (64-разрядная версия) GTK + 2.24.23 (Raleigh тема)

Версия пакета: 504010006

Версия NuGet: 4.3.1.4445

Среда выполнения .NET Core: / usr / local / share / dotnet / dotnet Версия среды выполнения: 2.0.3 SDK: /usr/local/share/dotnet/sdk/2.0.3/Sdks Версия SDK: 2.0.3 Пакеты SDK MSBuild: / Библиотека /Frameworks/Mono.framework/Versions/5.4.1/lib/mono/msbuild/15.0/bin/Sdks

Xamarin.Profiler Версия: 1.5.6 Расположение: / Applications / Xamarin Profiler.app/Contents/MacOS/Xamarin Profiler

Xamarin.Android не установлен

Xamarin Inspector не установлен

Инструменты разработчика Apple Xcode 9.1 (13532), сборка 9B55

Версия Xamarin.iOS: 11.3.0.47 (сообщество Visual Studio) Хеш: 51128b8c Ветвь: xcode9.1 Дата сборки: 2017-10-31 22: 42: 13-0400

Xamarin.Mac Xamarin.Mac не установлен. Не удается найти /Library/Frameworks/Xamarin.Mac.framework/Versions/Current/Version.

Информация о сборке Идентификатор выпуска: 702020011 Версия Git: b604c37c5a4a2f0919b45ffbe2aaad9fe040af31 Дата сборки: 2017-11-01 08: 31: 43-04 Надстройки Xamarin: d57dc14cbd4eb166ee62bab585965ab78d3650bc laneion d15-4d сборки

Операционная система Mac OS X 10.12.6 Darwin 16.7.0 Darwin Kernel Version 16.7.0 среда, 4 октября 00:17:00 PDT 2017 root: xnu-3789.71.6 ~ 1 / RELEASE_X86_64 x86_64

============= XCode =============

XCode для Mac версии 9.1 (9B55)

============= Моно ==============

Моно JIT-компилятор версии 5.4.1.6 (2017-06 / 1f4613aa1ac, среда, 18 октября, 09:31:57 EDT 2017) Авторские права (C) 2002-2014 Novell, Inc, Xamarin Inc и участники. www.mono-project.com TLS: нормальный SIGSEGV: altstack Уведомление: kqueue Архитектура: amd64 Отключено: нет Разное: softdebug LLVM: да (3.6.0svn-mono-master / 8b1520c8aae) GC: sgen (по умолчанию одновременно)

========= .NET Core SDK =========

Пакет SDK для .NET Core версии 2.0.3

=================================

Проект может быть построен на самом MacMini. Только задача VSTS дает сбой ...

Есть ли у кого-нибудь еще идеи, которые могут помочь мне решить мою проблему?

С уважением, Джоп


person Jop Middelkamp    schedule 23.11.2017    source источник
comment
Где вы создали приложение - в ОС Windows или Mac? И какой тип проекта, это библиотека классов Xamarin.Forms в Windows или приложение iso в Mac VS? А можно ли поделиться проектом на одном диске. Кроме того, есть связанная проблема: github.com/dotnet/standard/issues/391 , вы можете проверить, помогает ли это.   -  person Marina Liu    schedule 24.11.2017
comment
Привет @ MarinaLiu-MSFT, я уже видел сообщение, которое вы предоставили, но оно не дало мне ответа. Но пока что мы смогли решить проблему. Я скоро отправлю ответ. Спасибо, в любом случае!   -  person Jop Middelkamp    schedule 27.11.2017


Ответы (1)


Все начало работать нормально после того, как мы вручную отредактировали файл проекта .NET Standard 2.0 (* .csproj) и вручную добавили PackageReference.

<ItemGroup>
  ...
  <PackageReference Include="NETStandard.Library" version="2.0.0" />
  ...
</ItemGroup>
person Jop Middelkamp    schedule 27.11.2017
comment
Вы можете отметить это как ответ. И это принесет пользу другим, у кого есть подобные вопросы. - person Marina Liu; 30.11.2017
comment
Забыл отметить это. Спасибо за напоминание @ MarinaLiu-MSFT - person Jop Middelkamp; 30.11.2017
comment
Если вы это сделаете, в журналах сборки появится предупреждение о том, что эту ссылку не следует добавлять: предупреждение: в ваш проект была включена ссылка на PackageReference для NETStandard.Library. На этот пакет неявно ссылается .NET SDK, и вам обычно не нужно ссылаться на него из вашего проекта. Для получения дополнительной информации см. aka.ms/sdkimplicitrefs. - person Hugo Logmans; 11.10.2018
comment
У меня те же проблемы, которые я использовал, но не исправил. ## [error] Задача Xamarin.iOS завершилась с ошибкой Ошибка: /Library/Frameworks/Mono.framework/Versions/Current/Commands/msbuild не удалось вернуть код: 1. см. go.microsoft.com/fwlink/?LinkId=760847. - person Pratius Dubey; 25.03.2019