Question

Je ne parviens pas à importer un assemblage, soi-disant parce que la validation forte de nom échoue, même si cela se produit même quand j'enregistrer l'assemblée de ne pas être vérifiée. Puis place à quelqu'un ce que je fais mal ici?

Voici une transcription. Pour référence, les commutateurs à sn.exe sont:

  • -v:. Vérifiez la signature
  • -Vr. Registre assemblage pour skipping vérification

    PS C:.. \ Temp> \ sn.exe -v \ my.dll

    Microsoft (R) .NET Framework Strong Name Utility version 3.5.30729.1 Copyright (c) Microsoft Corporation. Tous droits réservés.

    Assemblée. \ My.dll 'est valide

    PS C:. \ Temp \ Cmdlets> Import-Module \ my.dll Import-Module: Impossible de charger le fichier ou l'assembly « mon,  Version = 4.0.0.0, Culture = neutral, PublicKeyToken = 31bf3856ad364e35' ou un de ses  dépendances. validation de nom fort a échoué. (Exception de HRESULT: 0x8013141A) A la ligne 1 de carbonisation: 14

    • Import-Module <<<<. \ Microsoft.Rtc.Management.Core.dll
      • CategoryInfo: NotSpecified: (:) [Import-Module], FileLoadExcep tion
      • FullyQualifiedErrorId: System.IO.FileLoadException, Microsoft.PowerShell .Commands.ImportModuleCommand

    PS C:. \ Temp \ Cmdlets> \ sn.exe -Vr *

    Microsoft (R) .NET Framework Strong Name Utility version 3.5.30729.1 Copyright (c) Microsoft Corporation. Tous droits réservés.

    entrée vérification ajouté pour l'assemblage ' '

    PS C:. \ Temp \ Cmdlets> Import-Module \ my.dll Import-Module: Impossible de charger le fichier ou l'assembly « mon,  Version = 4.0.0.0, Culture = neutral, PublicKeyToken = 31bf3856ad364e35' ou un de ses  dépendances. validation de nom fort a échoué. (Exception de HRESULT: 0x8013141A) A la ligne 1 de carbonisation: 14

    • Import-Module <<<<. \ Microsoft.Rtc.Management.Core.dll
      • CategoryInfo: NotSpecified: (:) [Import-Module], FileLoadExcep tion
      • FullyQualifiedErrorId: System.IO.FileLoadException, Microsoft.PowerShell .Commands.ImportModuleCommand

Je dois mentionner que je l'ai vérifié par réflecteur que tous les ensembles dépendants nécessaires sont présents dans le même répertoire.

Était-ce utile?

La solution

Votre ensemble est probablement retard signé ou clé de test signé, et il semble que seule PowerShell permet des assemblages entièrement signé à charger (à-dire qu'elle ne tient pas compte du saut paramètre de vérification). Cela expliquerait pourquoi sn.exe dit l'assemblée a une signature de nom fort valable quand il ne techniquement pas. (Vous pouvez savoir si l'Assemblée a fait une signature valide, même si elle est enregistrée pour sauter la vérification, en exécutant sn -vf au lieu de sn -v).

Je pense que la principale source de votre confusion découle d'une hypothèse erronée sur la façon dont fonctionne le saut de vérification. Enregistrement d'un ensemble pour la vérification est-skipping pas une garantie qui ne sera jamais vérifiée forte signature du nom de l'assemblée. La vérification est spécifiquement skipping destiné à permettre retard signé et la clé essai signé ensembles à fonctionner de manière transparente dans des situations comme celles-ci, mais rien ne s'arrête quelqu'un (comme PowerShell) de surcharger et de forcer la vérification de toute façon.

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top