Partager via


Instrumentation et nouvelle signature d'assemblys

Si vous souhaitez collecter les données de couverture du code lorsque que vous testez le code dans un assembly, Visual Studio doit commencer par instrumenter cet assembly. Le processus d'instrumentation ajoute le code à l'assembly qui génère les données de couverture du code.

Mais si l'assembly que vous testez a été signé avec un nom fort, la modification de code provoquée par l'instrumentation invalide sa signature. Visual Studio essaie automatiquement de signer à nouveau l'assembly immédiatement après l'étape d'instrumentation.

Si la nouvelle signature réussit, la série de tests finira et produira correctement des résultats. Si la signature échoue, une erreur telle que celle qui suit est générée :

Strong name verification failed for the instrumented assembly 'SignedLibrary, Version=1.0.0.0, Culture=neutral, PublicKeyToken=1696e096eba75082'. Please make sure that the correct key file for re-signing after instrumentation is specified in the test settings.

Pour remédier à ce problème, essayez les opérations suivantes :

  • Signer de nouveau l'assembly. Si vous disposez du fichier de clé qui a été utilisé pour signer l'assembly, vous pouvez le fournir afin que Visual Studio puisse automatiquement signer de nouveau l'assembly.

  • Désactiver la vérification de signature. Vous pouvez désactiver la vérification de la signature sur l'ordinateur sur lequel vous testez l'assembly. Cette action s'applique uniquement aux assemblys que vous spécifiez.

Signer de nouveau l'assembly

Dans vos paramètres de test de l'adaptateur de données de diagnostic pour la couverture du code, vous pouvez spécifier un fichier de clé pour signer de nouveau les fichiers binaires après l'instrumentation. Si vous testez plusieurs assemblys qui ont été signés, Visual Studio essaiera de signer de nouveau tous les assemblys avec nom fort qui ont été signés avec le fichier de clé que vous spécifiez.

La spécification d'un fichier de clé ajoute une étape de nouvelle signature au processus de série de tests. Visual Studio détermine automatiquement quels assemblys doivent être de nouveau signés en utilisant le fichier de clé que vous avez spécifié. Tous les assemblys qui peuvent être de nouveau signés en utilisant ce fichier de clé le seront.

Notes

Les assemblys ne peuvent être de nouveau signés qu'à l'aide d'un fichier de clé, et non d'un nom de clé.

La nouvelle signature d'assemblys se produit de manière incomplète ou pas du tout dans les cas suivants :

  • Si le fichier de clé n'est pas disponible, Visual Studio ne peut pas signer de nouveau l'assembly. Vous pouvez essayer de régénérer le fichier de clé, puis réessayer de signer de nouveau l'assembly.

  • Si le fichier de clé est protégé par un mot de passe, la nouvelle signature échoue.

  • Un seul fichier de clé est pris en charge par série de tests. Prenons l'exemple d'une série de tests faisant référence à plusieurs assemblys. Certains de ces assemblys ont été signés à l'aide d'un fichier de clé et d'autres à l'aide d'un fichier de clé différent. Comme vous ne pouvez sélectionner qu'un seul fichier de clé, les assemblys ayant besoin de l'autre fichier de clé ne peuvent pas être de nouveau signés, à moins que vous ne procédiez manuellement. Si certains assemblys sont laissés sans signature, une erreur est générée au niveau de la série de tests. Dans ce cas, vous souhaitez peut-être désactiver la vérification de signature, comme décrit dans Désactiver la vérification de signature.

Désactiver la vérification de signature

Si la nouvelle signature échoue, vous pouvez choisir de désactiver la vérification de signature pour cet assembly le temps de votre série de tests. Par exemple, la nouvelle signature échoue si le fichier de clé approprié n'est pas disponible. Pour désactiver la vérification de signature, utilisez l'Sn.exe (outil Strong Name Tool) avec l'option .Vr, comme indiqué ci-après :

SN -Vr <nom de l'assembly>

Cela désactive la vérification des noms forts, pour l'assembly spécifié uniquement, sur l'ordinateur sur lequel vous exécutez la commande.

Vous ne pouvez le faire que si vous disposez des autorisations suffisantes.

À l'issue de la série de tests, réactivez la vérification de signature. Pour ce faire, utilisez la commande SN.exe avec l'option –Vu, comme indiqué ci-après‚:

SN -Vu <nom de l'assembly>

Notes

Il est important que vous réactiviez la vérification de signature. Si la vérification de signature reste désactivée, cela peut provoquer des problèmes de sécurité.

Voir aussi

Tâches

Comment : configurer la couverture du code à l'aide de paramètres de test pour les tests automatisés

Comment : obtenir des données de couverture du code

Comment : signer un assembly avec un nom fort

Référence

Sn.exe (outil Strong Name Tool)

Concepts

Assemblys avec nom fort

Autres ressources

Créer des paramètres de test pour exécuter des tests automatisés à partir de Visual Studio

Créer des paramètres de test pour les tests automatisés dans le cadre du plan de test