Grüße alle,Was bedeutet es wirklich, ein Framework auszurichten und wie maximiere ich die Kompatibilität?
Das hat mich verwirrt, seit ich anfing, in C# zu programmieren. Mein Ziel ist es, eine Assembly zu erstellen, die auf dem neuesten .NET-Framework ausgeführt wird, das der Benutzer hat, was auch immer das sein mag. Ich möchte .NET 4 nicht benötigen, um installiert zu werden, aber ich möchte es verwenden, wenn der Benutzer es hat, und noch wichtiger, ich möchte, dass es noch funktioniert, wenn der Benutzer nur .NET 4 und nichts darunter hat. Ich vermute, dass dies nicht einmal möglich ist.
Ich verstehe nicht wirklich, was ich auswähle, wenn ich das "Target Framework" in Visual Studio ändere. Bedeutet das, dass "mit dieser Version kompatibel sein wird"? Oder "wird nur mit dieser Version kompatibel sein"? Es scheint, als ob es das letzte ist; Meine Tests in virtuellen Maschinen zeigen, dass .NET 4-gezielte Assemblies ohne .NET 4 fehlschlagen und dass .NET 3.5-Assembly-Assemblies ohne .NET 3.5 fehlschlagen. Kann ich das nicht einstellen, um maximale Kompatibilität zu erreichen?
UPDATE: Um zu verdeutlichen, habe ich ein Programm, das auf .NET zielt. Die Poster hier scheinen anzuzeigen, dass es mit .NET 4 geladen werden sollte. Aber in einer Umgebung mit nur .NET 4 und nichts davor schlägt es fehl Laden.
UPDATE2: Okay, herausgefunden, aber es ist viel komplexer, als die Poster hier zu denken scheinen. Ich öffne eine andere Frage, um die Feinheiten zu diskutieren, aber die kurze Version ist, benötigen Sie eine app.config mit <supportedRuntime version="v4.0" />
darin, wenn Sie non.NET 4 Assemblys auf .NET 4 ausführen möchten. Sie laden nicht ohne es.
Darf ich fragen, was Sie versuchen zu schreiben, dass Sie das neueste Framework verwenden möchten? In den meisten Fällen ist es akzeptabel, eine Anwendung so früh wie möglich zu schreiben, ansonsten finanzieren Sie sich selbst gegen bestimmte Frameworks und versuchen, das Mix-and-Match-Spiel basierend auf installierten Versionen zu spielen. –
Es ist nicht so, dass ich wirklich das neueste Framework verwenden möchte. Ich möchte, dass Benutzer, die nur .NET 4 installiert haben, das * gigantische * .NET 3.5-Framework nicht herunterladen und installieren müssen. –