Obtenir un « ComponentActivatorException » en utilisant le château de Windsor depuis une application .NET 4.0 en utilisant un composant .net 2.0

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

Question

J'ai une application qui est en cours d'élaboration dans VS2010, et utilise du château de Windsor-IoC, grâce à un fichier de configuration.

L'un des éléments que je suis, l'enregistrement a également développé dans VS2010, référence à un composant .net 2.0 (de LeadTools), la recompilation sorte que le projet 2.0 n'est pas une option. Lorsque l'enregistrement d'un composant d'emballage est fait, un « ComponentActivatorException » est élevé, qui enveloppe un « System.TypeInitializationException », qui à son tour une enveloppe « System.IO.FileLoadException » avec un message de « montage en mode mixte est construit contre la version « v2 .0.50727' de l'exécution et ne peut pas être chargé dans l'exécution 4.0 sans informations de configuration supplémentaires. "

J'ai ajouté la déclaration d'exécution au fichier de configuration de l'application, comme ceci:

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

Cela fonctionne bien si le composant d'emballage n'est pas enregistré à Windsor, cependant, il ne semble ne pas tenir compte des directives autrement.

Merci!

Était-ce utile?

La solution 2

Le problème est dû à l'utilisation de « définir » et de « si » s dans le fichier de configuration, par documentation MicroKernel . Suppression de tous les éléments du fichier App.Config les différents composants à instancier, que ce soit ou non ils ont été enregistrés dans le conteneur Windsor.

Autres conseils

Je suppose que vous utilisez l'enregistrement via XML?

Qu'est-ce qui se passe si vous enregistrez le composant dans le code?

Pouvez-vous essayer de reproduire le problème sans erreur?

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

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top