Xamarin: Ошибка MT2002: не удалось разрешить "System.Void System.Security.Cryptography.SHA1Cng::. Ctor()"

Я получаю эту ошибку при создании моего решения Xamarin для iOS.
Я включил ссылки только для SDK.
Странно, это прекрасно работает, когда я создаю его для симулятора, но когда я строю для реального устройства, он дает эту ошибку.

MTOUCH: error MT2002: Failed to resolve "System.Void 
System.Security.Cryptography.SHA1Cng::.ctor()" reference from 
"System.Core, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089"

Нет, где в моем коде я ссылаюсь на System.Security.Cryptography.

Он работает, когда я отключу привязку сборок или включите ссылку на все сборки, но связывание всех приведет к сбою Unity IoC и отключению связывания вместе приведет к большему размеру файла для приложения.

Я создаю целевую ОС 7.1 (без изменений, когда я ее изменяю) для .NET версии 4.5.2, и все обновления для Xamarin установлены.

Обновление:
Я могу подтвердить, что мой проект iOS относится к System.Core версии 2.0.5.0
Смотрите скриншот ниже.
Тем не менее, у меня есть проект PCL, на который ссылаются. Может ли это как-то вызвать проблему?

enter image description here

UPDATE: Оказывается, есть библиотека, на которую я ссылался, HashLib, который, как я думал, был PCL, но на самом деле это не так. Внутри HashLib был вызов чего-то в System.Core, из-за которого компоновщик потерпел неудачу.
Теперь я извлек необходимые функции из HashLib и скомпилировал его в отдельный проект PCL, и это устранило проблему с компоновщиком.

Ответ 1

Вы как-то ссылаетесь на настольную версию System.Core:

"System.Core, Version = 4.0.0.0, Culture = neutral, PublicKeyToken = b77a5c561934e089"

Версия Xamarin.iOS имеет Version=2.0.5.0.

Обратите внимание, что вы не можете ссылаться на эту версию System.Core самостоятельно, ее можно косвенно коснуться (если вы ссылаетесь на сборку, которая ссылается на System.Core).

Убедитесь, что все ваши ссылки используют версию System.Core 2.0.5.0 (я полагаю, вы можете использовать Reflector для этого).