Obtener una “ComponentActivatorException” usando el castillo de Windsor desde una aplicación de .NET 4.0 utilizando un componente .NET 2.0

StackOverflow https://stackoverflow.com/questions/2276033

Pregunta

Tengo una aplicación que se está desarrollando en VS2010, y hace uso del Castillo-Windsor IoC, a través de un archivo de configuración.

Uno de los componentes estoy registrando, también desarrollado en VS2010, referencia a un componente .NET 2.0 (LeadTools), por lo que volver a compilar el proyecto 2.0 no es una opción. Cuando el registro del componente de envoltura está hecho, un "ComponentActivatorException" se eleva, lo cual se ajusta un "System.TypeInitializationException", que a su vez se ajusta un "System.IO.FileLoadException" con un mensaje de "montaje de modo mixto se construye contra la versión 'v2 .0.50727' del tiempo de ejecución y no se puede cargar en el tiempo de ejecución de 4,0 sin información de configuración adicional ".

He añadido la declaración de tiempo de ejecución para el archivo de configuración de la aplicación, como así:

<!-- useLegacyV2RuntimeActivationPolicy is needed for LEADTools-->
<startup useLegacyV2RuntimeActivationPolicy="true">
  <supportedRuntime version="v4.0" sku=".NETFramework,Version=v4.0"/>
  <supportedRuntime version="v2.0.50727" />
</startup>

Esto funciona bien si el componente de envoltura no se ha registrado en Windsor, sin embargo, parece no tener en cuenta las directivas de otro modo.

Gracias!

¿Fue útil?

Solución 2

El problema era debido al uso de "definir" s y "si" s en el archivo de configuración, por la documentación microkernel . Extracción de todos esos elementos de la archivo App.config permitió a los componentes a ser instanciada, sean o no se registraron en el recipiente de Windsor.

Otros consejos

Asumo que está utilizando el registro a través de XML?

¿Qué ocurre si se registra el componente de código?

Se puede tratar de reproducir el problema sin error?

llamada Type.GetType("assembly qualified name of the type from .net 2.0 assembly");

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