Laden...

.Net Framework Kompatibilität

Erstellt von Jonas007 vor 2 Jahren Letzter Beitrag vor 2 Jahren 718 Views
J
Jonas007 Themenstarter:in
37 Beiträge seit 2020
vor 2 Jahren
.Net Framework Kompatibilität

Hallo liebe Community,
(leider) eine etwas blöde Frage, aber ich habe bereits viel zu lange die Microsoft-Documentations durchgelesen aber ich kann nichts damit anfangen.

Ich habe folgende Warnung: "Für das Projekt "{Projektname}" ist die Zielversion netcoreapp3.1 festgelegt. Eine Referenzierung durch ein Projekt mit der Zielversion .NETFramework,Version=v4.7.2 ist nicht möglich."
Ich habe eine Klassenbibliothek und eine Windows-Forms Anwendung, jedoch kann ich die Libary aufgrund dieser Fehlermeldung nicht einbinden. Ich kann in der Klassenbibliothek beim Zielframework nur .Net Core 1.0 - .Net Core 3.1 auswählen und in der Forms-Anwendung .Net-Framework 2.0 - .Net-Framework 4.8 auswählen. Was muss ich in den beiden Projekten einstellen, damit sie miteinander kompatibel sind?

Entschuldigt die vermutlich einfach zu beantwortende Frage aber ich bin was das betrifft absoluter Anfänger und weiß eigentlich nicht mal genau was es mit den Frameworks auf sich hat -_-

LG Jonas

2.079 Beiträge seit 2012
vor 2 Jahren

Das geht nicht, steht doch in der Meldung: "ist nicht möglich"

Entweder Du gehst mit der Version runter (was bescheuert wäre) oder Du ziehst die Version hoch. Für Letzteres gibt's Doku zum migrieren.

Oder Du verwendest .NET Standard 2.0 anstelle von .NET 4.7.1, das kannst Du dann sowohl in .NET 4.7.1 als auch .NET Core 3.1 einbinden. Wie gut das mit WinForms funktioniert, weiß ich aber nicht.
Und bedenke, dass .NET Standard nicht mehr weiterentwickelt wird, das sollte man nur noch nutzen, wenn man die Kompatibilität für alte Frameworks braucht.

Besser wäre, Du nutzt überall .NET Core oder Neuer - sofern möglich.

NuGet Packages im Code auslesen
lock Alternative für async/await

Beim CleanCode zählen nicht die Regeln, sondern dass wir uns mit diesen Regeln befassen, selbst wenn wir sie nicht befolgen - hoffentlich nach reiflichen Überlegungen.

4.939 Beiträge seit 2008
vor 2 Jahren

Hallo Jonas,

verwendest du VS 2019? Dann solltest du beide Projekte auf .NET 5 migireren (s.a. die Antwort von Abt in Wie erzwinge ich C# Version 8).

16.835 Beiträge seit 2008
vor 2 Jahren

.NET Framework und .NET Core sind beides Runtimes. .NET Core ist dabei der Nachfolger des .NET Framework, das ab Version 5 auch nur noch ".NET 5" heisst damit allen klar ist: das ist die Zukunft und der Nachfolger für .NET 4.8 und .NET Core 3.1.
.NET Standard ist eine Art Vertrag, um Code in beiden Welten zu verwenden.
Die jeweilige Unterstützung der Versionen siehst Du in folgender Tabelle: .NET-Standard

Nun sind wir in dem Zeitfenster, dass .NET Framework offiziell abgekündigt ist und nur noch in .NET 5 und höher investiert wird.
Das bedeutet zeitgleich, dass .NET Standard 2.1 auch die letzte Vertragsversion sein wird und wir ab sofort nur noch von ".NET" sprechen.
Zukunftsbibliotheken werden daher auch nur noch gegen .NET versioniert.

Du kannst aber keine .NET Core Runtime Assemblies in .NET Framework nutzen oder umgekehrt.
Das sind zwei verschiedene Welten. Du musst migrieren.
Beispiel für die Migration zu .NET 5

2.079 Beiträge seit 2012
vor 2 Jahren

@Abt:
Kennst Du eine gute Übersicht von Microsoft zu diesen Zusammenhängen?
Gerade für Einsteiger kann das ja ziemlich verwirrend sein, da würde eine Übersicht helfen.

NuGet Packages im Code auslesen
lock Alternative für async/await

Beim CleanCode zählen nicht die Regeln, sondern dass wir uns mit diesen Regeln befassen, selbst wenn wir sie nicht befolgen - hoffentlich nach reiflichen Überlegungen.

16.835 Beiträge seit 2008
vor 2 Jahren

In meinen Schulungen verwende ich da i.d.R. Zeugs von Immo Landwerth, zB The future of .NET Standard.
Aber eine bebilderte, offizielle Darstellung ausser .NET Future Innovation: .NET Standard is mir nich bekannt.

Microsoft zeigt in ihren Einsteiger-Videos eigentlich nur noch die neue Welt, keinerlei .NET Framework Vergangenheit mehr.
https://youtu.be/2Ky28Et3gy0?t=798

J
Jonas007 Themenstarter:in
37 Beiträge seit 2020
vor 2 Jahren

Danke euch für die guten Erklärungen. Alles was ich gelesen habe, bezog sich auf Leute, die das alles grundsätzlich schon verstehen und für Anfänger wie mich ist das ganze ziemlich kompliziert 🙂

edit: Mein Fehler lag bereits am erstellen der Windows-Forms Applikation. Ich habe die Projektvorlage "Windows Forms-App (.Net Framework)" und nicht "Windows Forms-App" gewählt. Bei ersteren kann man nämlich nur .Net-Standart Frameworks auswählen und keine .Net oder .Net-Core Frameworks.

16.835 Beiträge seit 2008
vor 2 Jahren

@Abt:
Gerade für Einsteiger kann das ja ziemlich verwirrend sein, da würde eine Übersicht helfen.){gray}

Bin da zufällig gerade über nen relativ neues YouTube Video von Tim Corey gestolpert, in dem er das eigentlich gut erzählt.
.NET Framework vs .NET Core vs .NET vs .NET Standard vs C# - YouTube

16.835 Beiträge seit 2008
vor 2 Jahren

@Abt:
Kennst Du eine gute Übersicht von Microsoft zu diesen Zusammenhängen?
Gerade für Einsteiger kann das ja ziemlich verwirrend sein, da würde eine Übersicht helfen.){gray}

Wir haben nun eine: Das .NET Ökosystem - .NET, .NET Core, .NET Standard, NuGet und Co 🙂