错误MT2001:无法链接程序集。原因:处理参考时出错

Adr*_*aus 6 xamarin.ios xamarin xamarin.forms

我在尝试构建引用.NET Standard 2.0库的Xamarin.iOS项目时遇到此错误。

在线的MT2001问题似乎都不存在这种特定的“处理引用时出错”的原因,因此我对如何诊断这一点感到迷惑。我已经尽我所能地调整和摆弄任何人,并保持理智,但我真的在黑暗中。

外面有人可以指出我的方向吗?

Bra*_*der 5

-v -v -v -v在项目iOS Build设置中添加到“其他mtouch参数”将有助于诊断问题。之后,您可以在构建输出中搜索MT2001并查看内部异常。显然,每个项目可能在导致链接器失败的程序集方面有所不同。您可能需要根据输出添加,删除或修复引用。

例如,我试图使用来自AspNetCore 2.1的SignalR,它System.Threading.Tasks.Extensions在我的项目中依赖于4.5.1,似乎Mono还不支持。Mono还没有提供自己的程序集版本,因此当mtouch链接程序集时,它无法这样做并抛出异常:

Mono.Cecil.AssemblyResolutionException: Failed to resolve assembly: 'System.Threading.Tasks.Extensions, Version=4.2.0.0, Culture=neutral, PublicKeyToken=cc7b13ffcd2ddd51'
Run Code Online (Sandbox Code Playgroud)

删除对该程序集的所有引用(因此删除本例的整个功能),可使构建和链接成功。

  • 这也为我工作。事实证明,我在(.Net Standard 2.0,但可能不相关)核心库中包含了一个nuget程序包,但忘记了将其包含在我的平台特定项目中。 (3认同)