Xamarin:错误MT2002:无法parsing“System.Void System.Security.Cryptography.SHA1Cng ::。ctor()”

我在为iOS构buildXamarin解决scheme时遇到此错误。
我只启用了链接SDK程序集
奇怪的是,当我为模拟器构build它时,它工作得很好,但是当我为一个真实的设备构build它时会产生这个错误。

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失败,并禁用链接所有在一起导致应用程序的较大的文件大小。

我正在为目标OS 7.1(当我改变这一点时没有什么不同).NET版本4.5.2和Xamarin的所有更新安装。

更新:
我可以确认我的iOS项目是指System.Core版本2.0.5.0
请参阅下面的截图。
但是,我确实有一个被引用的PCL项目。 这能不能解决问题呢?

在这里输入图像说明

更新:原来有一个我参考的库,HashLib,我认为这是一个PCL,但实际上不是。
在HashLib中有一个对System.Core中的东西的调用,导致链接器失败。
我现在已经提取了我需要从HashLib中的function,并编译成一个单独的PCL项目,这已经解决了我的连接问题。

你以某种方式引用了System.Core的桌面版本:

“System.Core,Version = 4.0.0.0,Culture = neutral,PublicKeyToken = b77a5c561934e089”

Xamarin.iOS版本的Version=2.0.5.0

请注意,您可能不会自己引用此版本的System.Core,它可以被间接引入(如果引用了引用System.Core的程序集)。

validation所有的引用使用System.Core的2.0.5.0版本(我相信你可以使用reflection器为此)。