Laden...

Projekt auf .Net 6.0 upgraden

Erstellt von Maliko vor 2 Jahren Letzter Beitrag vor einem Jahr 1.039 Views
M
Maliko Themenstarter:in
117 Beiträge seit 2012
vor 2 Jahren
Projekt auf .Net 6.0 upgraden

Huhu,

ich hab da ein kleines Problem. Und zwar habe ich ein Projekt welches noch das .Net-Framework 4.7.2 verwendet. Jetzt benötige ich aber eine Funktion die es erst ab .Net 5 gibt. Daher habe ich mir jetzt die aktuellste Version des .Net-Frameworks geholt und wollte in den Projekteinstellungen das Upgrade vornehmen (Es gibt keine Nuget-Pakete). Allerdings steht mir in der Auswahl nur maximal 4.8 zur Verfügung. Wenn ich allerdings ein neues Projekt erstelle, kann ich 6.0 problemlos auswählen.

Kann mir vielleicht irgendjemand sagen, wie ich das Projekt upgegradet bekomme, ohne dass ich das Projekt wegschmeißen muss? Es handelt sich um ein WinForms-Projekt (ich hasse dieses XML-Geschreibsel von WPF und mags bei UI lieber klickibunti).

T
2.219 Beiträge seit 2008
vor 2 Jahren

Von .NET Framework kansnt du nicht einfach auf .NET Core/5/6 updaten.
Du musst ein neues Projekt anlegen und deinen Code manuell übernehmen.

.NET Framework ist die alte Welt, 5+ die neue Welt.
Da es zu große technische Umbrüche gibt, kann man nur via .NET Standard Code portabel machen.
Dies funktioniert aber nur bei DLLs nicht bei Anwendungen wie Winforms.

T-Virus

Developer, Developer, Developer, Developer....

99 little bugs in the code, 99 little bugs. Take one down, patch it around, 117 little bugs in the code.

M
Maliko Themenstarter:in
117 Beiträge seit 2012
vor 2 Jahren

Ah. Das erklärt natürlich einiges. Na dann versuche ich mal das ganze zu migrieren.

J
61 Beiträge seit 2020
vor 2 Jahren

Je nachdem was man benutzt, kann man durchaus einfach updaten.

Ich persönlich finde den Upgrade Assistant | .NET sehr hilfreich. Ob es einem weiterhilft, ist aber projektabhängig.

M
Maliko Themenstarter:in
117 Beiträge seit 2012
vor 2 Jahren

Es war in der Tat recht einfach. Der größte Aufwand insgesamt war das Kopieren der Sourcen aus dem alten in das neue Projekt. Anschließend musste ich nur noch ein paar kleine Änderungen vornehmen, da das Settings-Konzept aus .Net-Framework in .NET nicht existiert (Settings.Default). Aber ansonsten war es überhaupt kein Problem. War halt pure Fleißarbeit (hätte meines erachtens sogar bis auf die paar Anpassungen im Code selbst sogar ein Praktikant hinbekommen müssen).

16.806 Beiträge seit 2008
vor 2 Jahren

da das Settings-Konzept aus .Net-Framework in .NET nicht existiert (Settings.Default).

Doch, existiert auch unter .NET 6; dafür ist das System.Configuration.ConfigurationManager Paket notwendig, das die Legacy Config mitbringt.

S
129 Beiträge seit 2014
vor einem Jahr

Muss das Thema hier nochmal aufgreifen, da ich momentan auch vor der Umstellung NET48 zu NET 6 stehe.

Leider habe ich einige WinForms Projekte in mein Projekt integriert, welche UserControls haben und nicht unter NET laufen,
ist es möglich in einer Projektmappe Frameworks zu mischen? - Hauptprojekt mit NET 6 und Verweise dann auf NET48 Projekte?

Oder muss ich alles was mit WinForms zu tun hat,
alle Forms löschen und von NET Framework 4.8 auf .NET Standard 2.0 umstellen?

2.078 Beiträge seit 2012
vor einem Jahr

ist es möglich in einer Projektmappe Frameworks zu mischen?

.NET 4.8 und .NET 6 sind nicht kompatibel untereinander.

alle Forms löschen und von NET Framework 4.8 auf .NET Standard 2.0 umstellen?

WinForms gibt's nicht für .NET Standard, das wird dir also nichts bringen.

WinForms gibt's für .NET 6, wenn etwas bei dir nicht läuft, liegt das an deinem Code.
Um diese Fehler musst Du dich natürlich kümmern, also schau nach, was das Problem ist und überleg dir, wie Du das beseitigst.

S
129 Beiträge seit 2014
vor einem Jahr

WinForms gibt's nicht für .NET Standard

Mal ein Beispiel, ich habe einen Verweise auf ein Projekt mit NET Framework 4.8 etc., in denen sich ein WinForm UserControl befindet.
Lösche ich das UserControl und änderere das Projekt- Framework auf .NET Standart 2.0, kann ich ich bei meinem .NET 6
doch auf das Projekt verweisen und ein WinForms UserControl WinForms in .NEt 6 erstellen und auf die Projekt Namespaces verweisen.

2.078 Beiträge seit 2012
vor einem Jahr

... und wenn Du es nicht löschst, gibt's irgendwelche Fehler, wenn Du auf .NET 6 umstellst?

Ein naheliegender Schritt wäre ja, genau diesen Fehlern auf den Grund zu gehen 😉