Domanda

Sono in grado di importare un assieme, presumibilmente a causa forte convalida nome sta venendo a mancare, anche se questo si verifica anche quando ho registrare l'assembly di non essere controllato. Possibile individuare qualcuno quello che sto facendo male qui?

Di seguito è una trascrizione. Per riferimento, gli interruttori a sn.exe sono:

  • -v:. Verifica firma
  • -Vr:. Registrazione di assemblaggio per la verifica skipping

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

    Microsoft (R) .NET Framework nome sicuro Utility Versione 3.5.30729.1 Copyright (c) Microsoft Corporation. Tutti i diritti riservati.

    Assembly '\ my.dll' è valida

    PS C:. \ Temp \ Cmdlet> Importa-Module \ my.dll Import-Module: Impossibile caricare il file o l'assembly 'il mio,  Version = 4.0.0.0, Culture = neutral, PublicKeyToken = 31bf3856ad364e35' o uno dei suoi  dipendenze. convalida nome sicuro non riuscita. (Eccezione da HRESULT: 0x8013141A) Alla riga: 1 char: 14

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

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

    Microsoft (R) .NET Framework nome sicuro Utility Versione 3.5.30729.1 Copyright (c) Microsoft Corporation. Tutti i diritti riservati.

    ingresso di verifica aggiunto per il montaggio ', '

    PS C:. \ Temp \ Cmdlet> Importa-Module \ my.dll Import-Module: Impossibile caricare il file o l'assembly 'il mio,  Version = 4.0.0.0, Culture = neutral, PublicKeyToken = 31bf3856ad364e35' o uno dei suoi  dipendenze. convalida nome sicuro non riuscita. (Eccezione da HRESULT: 0x8013141A) Alla riga: 1 char: 14

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

Devo dire che ho verificato tramite riflettore che tutti gli assembly dipendenti richiesti sono presenti nella stessa directory.

È stato utile?

Soluzione

Il montaggio è probabilmente o ritardare le firmata o chiave di prova firmato, e sembra PowerShell solo permette assiemi completamente firmato da caricare (cioè esso ignora l'impostazione della verifica salto). Questo spiegherebbe perché sn.exe dice il gruppo ha una firma forte nome valido quando non è così tecnicamente. (Si può scoprire se il montaggio ha in realtà una firma valida, anche se è registrata per la verifica saltare, eseguendo sn -vf invece di sn -v).

Credo che la principale fonte di vostra confusione nasce da un presupposto sbagliato su come verifica saltare opere. Registrazione di un gruppo per la verifica skipping è non una garanzia che la firma forte il nome del gruppo di non sarà mai verificata. Verifica salto è specificamente destinato a permettere ritardo firmato e test chiave assemblee al lavoro firmato senza soluzione di continuità in situazioni come queste, ma nulla si ferma qualcuno (come PowerShell) di ignorare esso e costringendo la verifica in ogni caso.

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top