2012-10-22 4 views
5

Mögliche Duplizieren:
Can I use a .NET 4.0 library in a .NET 2.0 application?Kann ich .NET 4-Anwendungen in meiner .NET 2-Anwendung ausführen?

So habe ich ein Vermächtnis .NET 2 GUI-Anwendung. Das Wiederholen dieser Anwendung kommt nicht in Frage.

Ich habe auch eine Konsole .NET 4-Anwendung, die FTP und andere funktioniert. Es verwendet LINQ.

Nun, ich abstrahiert die Konsolenanwendung in wiederverwendbare DLLs (die .NET 4) usw.

Was ich möchte in der Lage sein zu tun, um die GUI-Anwendung hat (.NET 2) in der Lage sein, schließe diese DLLs ein und rufe sie an. Dann holen Sie sich einfach Rückgabewerte davon.

denke ich, schlimmer Fall, ich könnte es nur eine Konsole app halten und haben das .NET zwei extern ausführen. Aber ich möchte, dass die GUI-App Methoden aus .NET 4 ausführen kann.

Die Clients, die diese App alle haben .NET 4.

Dank laufen wird.

Antwort

8

So habe ich eine Legacy. NET 2 GUI-Anwendung. Das Wiederholen dieser Anwendung kommt nicht in Frage.

Ändert das Framework-Ziel zu .NET 4 und Wiederaufbau auch nicht in Frage? Das wäre wahrscheinlich der einfachste Ansatz - dann würden Sie wissen Sie würden nicht in seltsamen Situationen enden, in denen Sie tatsächlich auf CLR v2 ausgeführt wurden und versuchen, Baugruppen zu laden, die CLR v4 (und .NET Framework v4-Assemblys) benötigt.

In den meisten Fällen sollten Sie einfach in der Lage sein, ein erneutes Targeting - während die Rückwärtskompatibilität nicht 100% ist, ist es ziemlich gut.

+0

Ich habe darüber eigentlich gedacht. Die Firmenpolitik besteht darin, die GUI nicht so viel wie möglich zu verändern. In der Tat würden sie mir wahrscheinlich sagen, dass ich die neue Konsolenanwendung (und Klassen) ändern soll, um zuerst .NET 2 zu verwenden. Aber ich habe lange nach einer Ausrede gesucht, um die GUI zu aktualisieren! SO könnte das versuchen und sehen, welche Art von Pushback ich bekomme. – cbmeeks

1

Was Sie hier tun müssen, ist Faktor aus dem gemeinsam genutzten Dienstprogramme in DLLs, die das 2.0-Framework abzielen. Diese DLLs können dann in einem 2.0- und einem 4.0-Prozess von .Net verwandt werden. .Net stellt einen sehr hohen Grad an Abwärtskompatibilität dar und in den meisten Fällen kann eine 2.0 DLL ohne Änderungen in 4.0 ausgeführt werden.