Pregunta

Recibo este mensaje de error al compilar:

Ensamblaje 'myframework [...]' usa 'system.web.extensions, versión = 3.5.0.0 [...]' que tiene una versión más alta que el ensamblaje referenciado 'System.web.extensions, versión = 1.0.61025.0 [. ..] '

Myproject se refiere a ambos System.Web.Extensions 1.0 Y Project 'MyFramework', este último a su vez refiere la extensión web 3.5. Ambas referencias son Copiar local = falso, versión específica = verdadero.

El error ocurre en MyProject (no en MyFramework). ¿Que esta mal aquí?

Entiendo que dos versiones de la misma asamblea no pueden coexistir en la misma ubicación, es por eso que Copy Local es falsa.

(Sé que la configuración es cojo, es una gran aplicación heredada, no puede solo refactorizar nada).

Actualización: debe haber algo con mi proyecto. Creé un proyecto de muestra (para 2.0, que hace referencia a Web Extensions 1.0) que utiliza otro proyecto de muestra (FWK 3.5, Web Extensions 3.5) y compila todo el derecho. (La forma en que esperaba). Así que básicamente modelé la situación y no pude reproducir el problema. La pregunta ha cambiado a:

¿Qué puede causar el comportamiento anterior? Técnicamente, ¿hay algo malo en referir dos versiones del mismo ensamblaje de nombre fuerte?

ACTUALIZACIÓN 2: Consulte los comentarios de respuesta aceptada para la causa raíz. ("Tipos expuestos") aún necesita encontrar la manera de resolverlo.

¿Fue útil?

Solución

Tienes que usar alias externas para hacer referencia a dos versiones distintas de la misma asamblea.

Otros consejos

Necesitas Agrega un <bindingRedirect> En App.Config.

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