2009-04-07 13 views
0

Warum wird Software, die in einer älteren Framework-Version erstellt wurde, nicht auf einer neueren Framework-Version ausgeführt?Alte .NET-Softwareprobleme

Eigentlich immer wenn ich versuche, einige alte spezifische Software mit .net 3.5 Framework auf meinem PC zu laufen, zeigen sie, dass sie .net framwork 1.1 benötigen. Was für eine schlechte Sache?

Meine neuere Version von Photoshop und MS Office öffnen alle niedrigeren Versionsdateien.

+0

Keine schlechte Frage, und muss nicht geschlossen werden. – Will

+0

Ja, es ist eine schlechte Frage. Es gibt kein Detail. "Eine ältere Framework-Version", "wird nicht ausgeführt". Trotzdem habe ich nur die Stimme abgegeben und werde nicht schließen. –

Antwort

2

.NET 1.1 und .NET 2.0 sind unterschiedliche Frameworks. Die .NET 3.0- und 3.5-Frameworks sind jedoch inkrementelle Erweiterungen, was bedeutet, dass sie auf dem .NET 2.0-Framework basieren. Also, wenn Sie etwas in 1.1 geschrieben haben, dann brauchen Sie 1.1 installiert. Alles, was in 2.0 geschrieben wurde, sollte auf einem Computer mit .NET 2.0, 3.0, 3.5 oder sogar 4.0 funktionieren (wenn Sie abenteuerlustig sind).

1

Wird nicht ausgeführt oder kompiliert nicht? Da ist ein Unterschied.

3

Es tut im Allgemeinen. Es gibt ein paar Rückwärts Inkompatibilitäten, aber nicht alle sehr viele Dinge.

Haben Sie ein bestimmtes Problem?

2

Die kurze Antwort ist ", damit sie neue Eigenschaften hinzufügen können". Manchmal können Sie keine Funktion hinzufügen, ohne eine breaking change zu der Art hinzuzufügen, wie etwas in der Vergangenheit gemacht wurde.

Das heißt, neuere Versionen des Frameworks werden oft Programme ausführen, die für eine ältere Version geschrieben wurden.

0

Hängt in der API ab, die Sie verwenden. Außerdem können Sie erzwingen, dass das Programm nur in einem Framework ausgeführt wird. Überprüfen Sie die app.config.

1

Die .NET-Plattform wurde entwickelt, um verschiedene Versionen nebeneinander auszuführen. Es ist nicht abwärtskompatibel.

Die Möglichkeit, dass verschiedene CLR-Versionen nebeneinander ausgeführt werden können, bedeutet, dass die CLR wesentlich aggressiver aktualisiert und verbessert werden kann, ohne die Abwärtskompatibilität zu stören oder Fehler in Programmen zu erstellen, die für eine frühere Version geschrieben wurden. Dies liegt daran, dass Anwendungen, die für 1.1 entwickelt wurden, immer noch auf derselben Version von 1.1 ausgeführt werden, lange nachdem neuere Versionen veröffentlicht wurden.