Pregunta

Problema

El problema básico es que quiero depurar algún código de terceros para ver cómo funciona y poder reemplazar parte de él.

¿Hay alguna forma de redirigir el enlace para que no use el dll en el GAC sino la copia que compilé en su lugar (que estará sin firmar o tendrá una clave pública diferente)? ??


Detalles

El elemento específico en cuestión es asp.net mvc, la razón es que la copia de la dll en el gac se ha optimizado y no coincide correctamente con el código fuente en el servidor fuente de Microsoft.

Microsoft ha lanzado la fuente de asp.net mvc para que pueda descargarlo y compilar el dll yo mismo, pero obviamente no puedo firmar el dll con su clave, puedo firmarlo con mi propia clave, pero luego tendrá una diferente token de clave pública.

La respuesta simple sería hacer referencia a mi dll en mi aplicación y volver a compilar mi aplicación, pero luego también tengo que volver a compilar cualquier dll de terceros que haga referencia a asp.net mvc (por ejemplo, mvccontrib).

¿Fue útil?

Solución

Puede ajustar la verificación de firma con SN.EXE herramienta .

sn -Vr assembly

Anule el registro del ensamblaje original del GAC, luego coloque el suyo en la carpeta del programa y use SN para omitir la verificación.

Otros consejos

Tuve un problema similar al 'parchear' un sistema con dlls / exes firmados con retraso. A pesar de usar sn -Vr *, [PublicKey] estaba fallando con SecurityException: Error de validación de nombre seguro. Luego, mirando las ubicaciones del Registro: HKLM \ Software \ Microsoft \ StrongName \ Verification y HKLM \ Software \ Wow6432Node \ Microsoft \ StrongName \ Verification parecía que tenía algunas entradas inválidas . Eliminé las entradas no válidas y luego volví a usar sn (para 64/32 bits) y funcionó de maravilla.

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