web-dev-qa-db-ja.com

エラーMT2001:アセンブリをリンクできませんでした。理由:参照の処理中にエラーが発生しました

.NET Standard 2.0ライブラリを参照するXamarin.iOSプロジェクトをビルドしようとすると、このエラーが発生します。

オンラインのMT2001の問題には、この「参照処理中のエラー」という特定の理由があるように見えないので、これを診断する方法について途方に暮れています。私は、一人の人間ができる限りのことを調整し、いじくり回して、正気を保っていますが、私は本当に暗闇の中にいます。

誰かが私を指示することはできますか?

7

プロジェクトのiOSビルド設定の「追加のmtouch引数」に-v -v -v -vを追加すると、問題の診断に役立ちます。その後、MT2001のビルド出力を検索して、内部の例外を表示できます。明らかに、各プロジェクトは、アセンブリがリンカを失敗させる原因について異なる場合があります。出力に基づいて参照を追加、削除、または修正する必要がある場合があります。

たとえば、プロジェクトのSystem.Threading.Tasks.Extensions 4.5.1に依存するAspNetCore 2.1のSignalRを使用しようとしていました Monoはまだサポートされていません 。 Monoは独自のバージョンのアセンブリをまだ提供していないため、mtouchがアセンブリをリンクしようとすると、リンクできず、例外がスローされます。

Mono.Cecil.AssemblyResolutionException: Failed to resolve Assembly: 'System.Threading.Tasks.Extensions, Version=4.2.0.0, Culture=neutral, PublicKeyToken=cc7b13ffcd2ddd51'

このアセンブリへのすべての参照(つまり、私の場合は全体の機能)を削除すると、ビルドとリンクが成功します。

5
Brandon Rader

System.Reactive 4.1.0に依存するXamarinライブラリを使用すると、これが発生することがわかりました。 System.Threading.Tasks.Extensionsに関連するバグがあり、これは私が作成しているライブラリなので、System.Reactive 4.0.0にロールバックする必要がありました。

1

私にとってエラーは次のとおりです。パッケージの1つがpackage.configファイルに記述されていますが、パッケージでは使用できませんでした。だから私はヌゲから不足しているパッケージを追加し、アプリは正常に動作します

0
GvSharma