2009-08-05 12 views
21

Tengo un ensamblaje, Foo, que tiene una referencia a la barra de ensamblaje (versión X.X.X.2000). En las propiedades, la versión específica está establecida en False. Tengo ambas Bar (x.x.x.2000) y Bar (x.x.x.1000) en mi local GAC. Todo está bien.Uso de la referencia de versión específica en Visual Studio 2008

En otra máquina, donde no hay una versión de Bar está en la GAC, pero Bar (xxx1000) se encuentra en el mismo directorio que Foo, corriendo Foo fallará alegando que no puede encontrar Barr (xxx2000) con

No se pudo cargar el archivo o ensamblado 'Barra, Versión = xxx2000, Cultura = neutro, PublicKeyToken = YXYXYXYXXYX' o una de sus dependencias . La definición del manifiesto del conjunto ubicado no coincide con la referencia de ensamblado . (Excepción de HRESULT: 0x80131040)

¿No debería utilizar Foo Bar (x.x.x.1000) ya que la versión específica está configurada en False o me falta algo?

Tal vez no entendí cómo funciona la versión específica.

Hay algunas otras preguntas sobre las referencias de versiones específicas en Stack Overflow, pero nada de esto me sirvió de nada.

EDITAR

lectura adicional: http://www.code-magazine.com/article.aspx?quickid=0507041&page=3

+0

Esto sólo ocurre con con nombre seguro (firmado) assemblys, ya que la comprobación de versión sólo se produce con los que están siendo utilizados. – sloth

+0

Ver http://blogs.msdn.com/b/irenak/archive/2005/12/13/503105.aspx –

Respuesta

25

"Versión específica" es una propiedad de tiempo de construcción que dirige al compilador que use la versión disponible. En tiempo de ejecución, el marco aún busca la versión específica del ensamblado que se usó en tiempo de compilación.

Ver este foro de discusión: http://forums.asp.net/t/1251728.aspx

Cuestiones relacionadas