Wie Sie eine „ComponentActivatorException“ mit Schloss Windsor von einer .net 4.0-Anwendung einer .net 2.0 Komponente

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

Frage

Ich habe eine Anwendung, die in VS2010 entwickelt wird, und verwendet den Schloss-Windsor IoC, durch eine Konfigurationsdatei.

Eine der Komponenten Ich melde mich, auch in VS2010 entwickelt, verweist auf eine .net 2.0-Komponente (Leadtools), so das 2.0-Projekt neu zu kompilieren, ist keine Option. Wenn die Registrierung des Verpackungskomponente erfolgt, wird ein „ComponentActivatorException“ angehoben wird, die eine „System.TypeInitializationException“ Wraps, die wiederum Anordnung eine „System.IO.FileLoadException“ mit einer Meldung von „Mixed Mode hüllt gegen Version gebaut wird‚v2 .0.50727' der Laufzeit und nicht in der 4.0-Laufzeit ohne zusätzliche Konfigurationsinformationen geladen werden kann. "

Ich habe die Laufzeit Erklärung die Anwendung der Konfigurationsdatei hinzugefügt, wie so:

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

Das funktioniert gut, wenn die Verpackungskomponente in Windsor nicht registriert ist, aber es scheint, die Richtlinien sonst außer Acht zu lassen.

Danke!

War es hilfreich?

Lösung 2

Das Problem war wegen Verwendung von „definieren“ s und „wenn“ s in der Konfigurationsdatei gemäß dem Microkernel Dokumentation . Entfernen aller dieser Elemente aus der App.Config Datei erlaubt die Komponenten instanziiert werden, ob sie in dem Behälter Windsor registriert wurden.

Andere Tipps

Ich nehme an, Sie Anmeldung über XML verwenden?

Was passiert, wenn Sie die Komponente im Code registrieren?

Können Sie versuchen, das Problem ohne Fehler zu reproduzieren?

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

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top