Pregunta

No puedo importar un ensamblaje, supuestamente debido a una fuerte validación de nombre está fallando, aunque esto ocurre incluso cuando me registro a la asamblea a no ser comprobado. Pueden detectar a alguien lo que estoy haciendo mal aquí?

A continuación se muestra una transcripción. Para referencia, los interruptores a sn.exe son:

  • -v:. Comprobar firma
  • -vr:. Registro de montaje para la omisión de la verificación

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

    Microsoft (R) .NET Framework fuerte utilidad de nombre de la versión 3.5.30729.1 Derechos de autor (c) Microsoft Corporation. Todos los derechos reservados.

    Asamblea '\ my.dll' es válido

    PS C:. \ Temp \ cmdlets> Import-Module \ my.dll Import-Module: No se pudo cargar el archivo o ensamblado 'mi, Version = 4.0.0.0, Culture = neutral, PublicKeyToken = 31bf3856ad364e35' o uno de sus Dependencias. validación de nombre de Strong falló. (Excepción de HRESULT: 0x8013141A) En la línea: 1 Char: 14

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

    PS C:. \ Temp \ cmdlets> \ sn.exe -vr *

    Microsoft (R) .NET Framework fuerte utilidad de nombre de la versión 3.5.30729.1 Derechos de autor (c) Microsoft Corporation. Todos los derechos reservados.

    entrada Verificación añadió para el montaje ', '

    PS C:. \ Temp \ cmdlets> Import-Module \ my.dll Import-Module: No se pudo cargar el archivo o ensamblado 'mi, Version = 4.0.0.0, Culture = neutral, PublicKeyToken = 31bf3856ad364e35' o uno de sus Dependencias. validación de nombre de Strong falló. (Excepción de HRESULT: 0x8013141A) En la línea: 1 Char: 14

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

Me debería mencionar que me he verificado a través del reflector que todos los ensamblados dependientes requeridos están presentes en el mismo directorio.

¿Fue útil?

Solución

Su montaje es, probablemente, ya sea del retardo firmado o llave de prueba firmado, y parece que PowerShell sólo permite montajes totalmente firmó para ser cargado (es decir, no tiene en cuenta la configuración de la verificación de salto). Esto explicaría por qué dice sn.exe el conjunto tiene una firma sólida nombre válido cuando no lo hace técnicamente. (Puede averiguar si el conjunto tiene en realidad una firma válida, incluso si está registrado para la verificación saltar, mediante la ejecución de sn -vf en lugar de sn -v).

Creo que la principal fuente de su confusión proviene de una suposición errónea acerca de cómo saltarse la verificación obras. El registro de un conjunto para la verificación de la omisión es no una garantía de que el nombre de la firma fuerte de la asamblea nunca será verificada. Verificación de saltar está destinado específicamente para permitir tecla DEMORA firmado y prueba firmado asambleas para trabajar sin problemas en situaciones como éstas, pero nada impide que alguien (como PowerShell) la reemplace y obligando a la verificación de todos modos.

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top