Maison >développement back-end >C++ >Pourquoi mon test d'unité C # échoue-t-il avec une erreur de «décalage manifeste d'assemblage»?

Pourquoi mon test d'unité C # échoue-t-il avec une erreur de «décalage manifeste d'assemblage»?

Linda Hamilton
Linda Hamiltonoriginal
2025-01-30 23:41:09435parcourir

Why Does My C# Unit Test Fail with an

Décodage de l'erreur C # "Assemblage de l'assemblage" dans les tests unitaires

Rencontrer l'erreur "La définition manifeste de l'assemblage situé ne correspond pas à la référence de l'assemblage" lors du test de votre application C # Windows Forms? Ce guide dénoue le mystère derrière ce problème de chargement d'assemblage .NET commun.

Le problème de base se situe dans le chargeur d'assemblage .NET, responsable de la localisation et du chargement des assemblages externes. Ce chargeur vérifie méticuleusement la version, la culture et le jeton clé de l'assemblage par rapport aux informations des références de votre projet. Un décalage, comme indiqué par l'erreur, conduit à la charge de l'ensemble incorrect.

Le message d'erreur met souvent en évidence le conflit: par exemple, une référence à la version 1.2.0.203 d'un assemblage "utilitaire", mais le chargeur trouve la version 1.2.0.200.

La solution consiste à s'assurer que la bonne version (1.2.0.203 dans cet exemple) est accessible à votre application. Il y a deux approches principales:

  1. Cache d'assemblage global (GAC): Installez l'assemblage correct dans le GAC à l'aide de la commande gacutil:

    <code class="language-bash">gacutil /i "path/to/my.dll"</code>
  2. Chemin de l'application: Alternativement, placez le fichier my.dll correct directement dans le chemin d'exécution de votre application.

Dépannage avec AssemblySniffer:

Si vous n'êtes pas sûr de l'emplacement de l'assemblage, des outils comme AssemblySniffer peuvent vous aider. Cet utilitaire recherche votre système de fichiers pour des assemblées correspondant aux critères spécifiques (version, jeton de clé publique, etc.), en train de contenir la version contradictoire.

En résolvant l'écart de la version de l'assemblage, le chargeur d'assemblage .NET chargera correctement l'assemblage de l'assemblage prévu, résolvant l'erreur "Assembly Manifest Ascramparf" et permettant à vos tests unitaires de s'exécuter sans problème.

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn