Frage

Ich bin nicht in der Lage eine Baugruppe zu importieren, angeblich wegen starke Namen Validierung fehlschlägt, obwohl dies auch geschieht, wenn ich die Versammlung registrieren, um nicht überprüft werden. Kann jemand vor Ort, was mache ich falsch hier?

Hier ist eine Abschrift. Als Referenz sind die Schalter auf sn.exe:

  • -v:. Signatur prüfen
  • -Vr. Register Anordnung zur Überprüfung Skipping

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

    Microsoft (R) .NET Framework Strong Name Utility Version 3.5.30729.1 Copyright (c) Microsoft Corporation. Alle Rechte vorbehalten.

    Assembly '\ my.dll' gilt

    PS. C: \ temp \ Cmdlets> Import-Module \ my.dll Import-Module: Datei konnte nicht geladen werden oder Assembly ‚meine, Version = 4.0.0.0, Culture = neutral, PublicKeyToken = 31bf3856ad364e35' oder einem seiner Abhängigkeiten. Starke Namen Validierung fehlgeschlagen. (Ausnahme von HRESULT: 0x8013141A) Bei Zeile: 1 Zeichen: 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. Alle Rechte vorbehalten.

    Eintrag Überprüfung hinzugefügt für Assembly '

    PS. C: \ temp \ Cmdlets> Import-Module \ my.dll Import-Module: Datei konnte nicht geladen werden oder Assembly ‚meine, Version = 4.0.0.0, Culture = neutral, PublicKeyToken = 31bf3856ad364e35' oder einem seiner Abhängigkeiten. Starke Namen Validierung fehlgeschlagen. (Ausnahme von HRESULT: 0x8013141A) Bei Zeile: 1 Zeichen: 14

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

sollte ich erwähnen, dass ich über Reflector vergewissert haben, dass alle erforderlichen abhängigen Baugruppen im selben Verzeichnis vorhanden sind.

War es hilfreich?

Lösung

Ihre Montage wahrscheinlich entweder verzögert signiert oder Testschlüssel signiert, und es sieht aus wie Powershell erlaubt nur voll signierte Baugruppen geladen werden (das heißt, es ignoriert die Überprüfung Einstellung skip). Dies würde erklären, warum sn.exe sagt die Versammlung eine gültige starken Namen Unterschrift hat, wenn es funktioniert technisch nicht. (Können Sie herausfinden, ob die Baugruppe tatsächlich eine gültige Signatur hat, auch wenn es für die Überprüfung Überspringen registriert ist, durch sn -vf statt sn -v ausgeführt wird).

Ich denke, die wichtigste Quelle für Ihre Verwirrung von einer falschen Annahme ergibt sich darüber, wie Verifikation Arbeiten zu überspringen. Registrieren eine Anordnung zur Überprüfung Skipping heißt nicht eine Garantie, dass die starke Namen Unterschrift Versammlung wird nie überprüft werden. Verification-Skipping ist speziell gedacht Verzögerung unterzeichnet und Testschlüssel signiert Baugruppen arbeiten nahtlos in Situationen wie diese zu ermöglichen, aber nichts hindert jemand (wie Powershell) daraus zwingende und zwingt Überprüfung trotzdem.

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top