2009-05-05 18 views

Respuesta

17

No, no es posible lograr esto. Si existe una DLL de la misma versión a la que se hace referencia en su programa en el GAC, la CLR será siempre elija esta. No hay forma de anular este comportamiento.

+0

¿Tiene algo que ver con la seguridad? – codeulike

+0

@codeulike, creo que tiene más que ver con el servicio. Sé menos sobre el por qué y más sobre la capacidad de hacerlo porque pasé mucho tiempo tratando de subvertir este comportamiento antes de darme cuenta de que simplemente no era posible. – JaredPar

+5

Es por eso que el GAC es malo, en mi libro. – Benjol

2

No estoy seguro de si hay algo que realmente revierta el orden de búsqueda como tal, pero dependiendo de sus requisitos, es posible que desee consultar assembly binding redirection, que le da bastante control sobre las versiones de ensamblados que se cargan.

+1

Esto cambiará la versión que enlaza. Sin embargo, la versión que termine eligiendo seguirá sujeta a las reglas del GAC que mencioné. – JaredPar

+0

De hecho, aclaró un poco la respuesta para reflejar esto –

1

JaredPar tiene razón - el GAC será siempre obtener el primer sondeo para el montaje. Sin embargo, si es como yo, y desea tener la DLL en vivo en el GAC y aún depurar, puede agregar un script de compilación para volcar su archivo .pdb en la misma carpeta que el ensamblado en el GAC (estará en C: \ windows \ assembly \ gac_msil \ assembly.name_ [token de clave pública]).

Cuestiones relacionadas