Я получаю эту ошибку при создании моего решения 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, на который ссылаются. Может ли это как-то вызвать проблему?
UPDATE:
Оказывается, есть библиотека, на которую я ссылался, HashLib, который, как я думал, был PCL, но на самом деле это не так.
Внутри HashLib был вызов чего-то в System.Core, из-за которого компоновщик потерпел неудачу.
Теперь я извлек необходимые функции из HashLib и скомпилировал его в отдельный проект PCL, и это устранило проблему с компоновщиком.