Pregunta

Hay dos escenarios que debo aclarar:

  1. Un ejecutable compilado con .NET 3.5 necesita usar una biblioteca compilada con .NET 1.1 y la biblioteca debe ejecutarse en el tiempo de ejecución 1.1.

  2. Un ejecutable compilado con .NET 1.1 necesita usar una biblioteca compilada con .NET 3.5.

No puedo encontrar una fuente confiable que indique que no es posible cargar dos versiones del tiempo de ejecución .NET y que la documentación de Microsoft es muy vaga al respecto.

¿Fue útil?

Solución

No: no puede cargar el CLR en el mismo proceso dos veces. Consulte la documentación para Alojamiento de CLR

  

Al igual que con las versiones anteriores de la   runtime, el CorBindToRuntimeEx   La función inicializa el tiempo de ejecución. usted   Puede elegir qué versión de la   runtime para cargar, pero un proceso puede    alojar solo una versión .

Otros consejos

.NET 4 promete habilitar el hospedaje de diferentes versiones de CLR en el mismo proceso mediante En proceso Side by Side .

Para el caso # 1, ¿hay alguna razón en particular (por ejemplo, romper cambios) que requiera que la biblioteca esté alojada en el tiempo de ejecución 1.1? ¿Es posible exponer la biblioteca a través de un servicio web compilado 1.1 y tener el punto ejecutable al servicio web en su lugar? (¿O alguna otra técnica remota para obtener la biblioteca en su propio proceso?)

Para el caso # 2, ¿es posible recompilar la aplicación 1.1 bajo 2.0 / 3.5, de manera que pueda residir en el mismo proceso?

En cualquier caso, Rob Walker tiene razón (y yo voté): simplemente no puedes alojar 2 versiones del tiempo de ejecución en el mismo proceso. Así que tienes que trabajar alrededor de alguna manera. Me imagino que en ambos casos, la fuente debe estar disponible, por lo que deben jugarse las recompilaciones y las reevaluaciones.

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