Microsoft .Net Framework Logo

Heute nur ganz kurz…

Die Zeit schreitet ja voran, es gibt nicht nur neue Betriebssysteme sondern auch neue Versionen vom .Net Framework. Für den eigentlichen Benutzer unsichtbar, manchmal wegen massiven Updates sogar nervig, wird es dennoch von vielen Anwendungen benötigt.

Was ist das überhaupt?

Das Microsoft .Net Framework (für Windows und mittlerweile auch ReactOS) sowie auch das Mono Framework (Linux, MacOS) nutzen Entwickler um schneller und portabler Anwendungen zu entwickeln, da das Frarmework einem viele lästige Aufgaben abnimmt. Vergleichbar mit Java, auch wenn der Vergleich sehr hinkt, weil Java ist ja nicht grade für die Performance bekannt ist (welche eben nicht existiert)… Aber das Prinzip ist ähnlich.

Wo liegt das Problem?

Ganz einfach. Es gibt mittlerweile 3 verschiedene Versionen der Runtime, nämlich 1, 2 und 4. In wie weit 1 unterstützt wird kann ich nicht sagen, ich bin erst mit der 2 eingestiegen. Das ist der Kern der .Net Versionen 2.0, 3.0 und 3.5 (letztere haben nur die Funktionalität erweitert). Diese war schon bei Windows XP, Vista und 7 vorinstalliert. Nutzte man ein noch älteres System musste man es halt nachrüsten.

Jetzt kommt aber das Problem. Neuere Betriebssysteme wie Windows 8(.1) und Windows 10 setzen auf die Runtime 4 (also Version 4.0, 4.5 oder 4.6). Die 2er Runtime, also das Framework 3.5 in diesem Fall ist nicht mehr vorinstalliert. Will man jetzt also eine Anwendung starten die für das .Net Framework 2 kompiliert wurde erscheint eine Warnmeldung:

Anders als früher kann man das Framework nicht lokal installieren. Das geht nur von der Windows DVD (angeblich, nie selbst getestet) oder online.

Aber das Ganze ist meistens nicht nötig. Man kann .Net Framework 2 Anwendungen auch in der 4er Runtime laufen lassen.

Und wie?

Dazu muss eine Datei erstellt werden die so heißt wie das Programm was man starten möchte, mit „.config“ als Dateiendung, also zum Beispiel „MeineAnwendung.exe.config“.

Diese Datei einfach im Notepad oder einem anderen Text Editor eurer Wahl öffnen und folgenden Text hinein kopieren:

<?xml version="1.0" encoding="utf-8"?>
<configuration>
        <startup useLegacyV2RuntimeActivationPolicy="true">
                <supportedRuntime version="v2.0.50727"/>
                <supportedRuntime version="v4.0"/>
        </startup>
</configuration>

Damit wird der 4er Runtime erlaubt, auch diese Anwendung auszuführen, selbst wenn sie für die 2er kompiliert wurde.

Softwareentwicklern sei trotzdem dringend angeraten die Software in der neuen Runtime ausgiebig zu testen, da es natürlich immer zu Kompatibilitätsproblemen kommen kann. Ist mir zwar bisher noch nicht passiert, aber sicher ist sicher.

Fazit:

Mal wieder so eine Kleinigkeit die man als Entwickler wissen sollte. Man stelle sich vor man erstellt eine CD / DVD mit einer Autostart Anwendung und alles was man bekommt ist das oben gezeigte Bild. Unschön. Und da es nur eine harmlose Textdatei ist, sollte es ja kein Problem sein diese gleich mit einzubinden.

Zur Not könnte man sich auf 2er Basis einen Loader schreiben der denn auf die 2er oder 4er Binary verweist, falls dies notwendig sein sollte. Ich wüsste nicht warum, aber Anwendungsgebiete sind ungefähr so vielseitig wie eine DNA. ;)