Как использовать библиотеки netstandard в xamarin iOS?

Каждый раз, когда я добавляю ссылку на библиотеку только для netstandard, я получаю следующую ошибку. Библиотеки, специально предназначенные для xamarinios10, работают нормально.

ошибка CS0012: тип System.Object' is defined in an assembly that is not referenced. Consider adding a reference to assemblySystem.Runtime, версия = 4.0.20.0, культура = нейтральная, PublicKeyToken = b03f5f7f11d50a3a '

Например, добавление библиотеки AutoMapper в новый проект «Библиотека iOS» не работает. Он также не работает ни с одним из моих собственных пакетов NuGet, ориентированных на netstandard.


person averbin    schedule 27.02.2017    source источник
comment
Я думаю, что Xamarin поддерживает netstandard из-за этого сообщения в блоге - blog.xamarin. com / net-standard-library-support-for-xamarin, а этот - developer.xamarin.com/guides/cross-platform/   -  person averbin    schedule 27.02.2017
comment
Вам придется использовать последние версии Xamarin и VS2017 (лучше после 7 марта).   -  person Lex Li    schedule 27.02.2017
comment
@LexLi Я пробовал использовать Xamarin Studio и Visual Studio Mac Preview, ни один из них не работает. Вы хотите сказать, что netstandard в Xamarin работает только с Windows и Visual Studio?   -  person averbin    schedule 27.02.2017
comment
Поддержка .NET Standard 1.6 заявлена ​​Xamarin, и если вы не смогли определить способ, обратитесь в службу поддержки Microsoft / Xamarin.   -  person Lex Li    schedule 27.02.2017


Ответы (1)


Чтобы пакет .NET Standard работал с Xamarin iOS, вам необходимо вручную добавить ссылку на System.Runtime в свой файл * .csproj. Эта ссылка выделена в Xamarin Studio как недопустимая, но проект компилируется и работает на устройстве и в симуляторе. Например, чтобы упростить работу приложения, я получил это в моем csproj

<ItemGroup>
  <Reference Include="System" />
  <Reference Include="System.Xml" />
  <Reference Include="System.Core" />
  <Reference Include="Xamarin.iOS" />
  <Reference Include="System.Runtime" />
</ItemGroup>

Обратите внимание на ссылки System.Runtime внизу.

person averbin    schedule 27.02.2017