web-dev-qa-db-fra.com

Erreur MT2001: Impossible de lier les assemblys. Raison: erreur lors du traitement des références

Je reçois cette erreur en essayant de construire un projet Xamarin.iOS faisant référence à une bibliothèque .NET Standard 2.0. 

Aucun des problèmes de MT2001 en ligne ne semble avoir cette raison spécifique "Erreur lors du traitement des références", je ne sais donc pas comment diagnostiquer cela. J'ai peaufiné et manipulé à peu près tout ce qu'une personne peut faire pour rester sain d'esprit, mais je suis vraiment dans le noir. 

Quelqu'un peut-il me diriger dans une direction? 

4
Adrian Frielinghaus

L'ajout de -v -v -v -v à "Arguments mtouch supplémentaires" dans les paramètres de construction iOS du projet aidera à diagnostiquer le problème. Après cela, vous pouvez rechercher la sortie de génération pour MT2001 et afficher les exceptions internes. De toute évidence, chaque projet peut différer en ce qui concerne Assembly qui provoque l'échec de l'éditeur de liens. Vous devrez peut-être ajouter, supprimer ou corriger vos références en fonction du résultat.

Par exemple, j'essayais d'utiliser SignalR d'AspNetCore 2.1, qui dépend de System.Threading.Tasks.Extensions 4.5.1 dans mon projet, ce qui semble/ Mono ne prend pas encore en charge . Mono ne fournit pas encore sa propre version de l’Assemblée. Par conséquent, lorsque mtouch crée un lien avec l’Assemblée, il ne peut pas le faire et lève une exception:

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

Supprimer toutes les références à cette assemblée (et donc à toute la fonctionnalité dans mon cas) a permis la création et la création de liens.

4
Brandon Rader

J'ai constaté que je l'obtenais lorsque j'utilisais une bibliothèque Xamarin qui dépend de System.Reactive 4.1.0. Il y a un bogue associé à System.Threading.Tasks.Extensions, et comme c'est une bibliothèque que j'écris, j'ai dû revenir à System.Reactive 4.0.0.

1
matt.writes.code

Pour moi, l'erreur est la suivante: un des paquetages est mentionné dans le fichier package.config mais il n'était pas disponible dans les paquetages. J'ai donc ajouté le paquet manquant dans Nuget et l'application fonctionne bien.

0
GvSharma