Das Projekt des Auftragsbuchs ist Bruchstelle B1: eine Projektdatei im klassischen Format, in der jede Quelldatei einzeln steht, dazu eine packages.config und eine AssemblyInfo.cs. Dieses Format versteht .NET 10 nicht. Bevor das Programm auf die neue Laufzeit zielen kann, muss es das Format wechseln.

Microsofts Dokumentation rät, das in zwei getrennten Schritten zu tun: Erst überführen Sie das Projekt in das SDK-Format, während es noch auf .NET Framework zielt. Dann erst ändern Sie das Ziel. Der Grund ist einfach: Geht nach dem ersten Schritt etwas kaputt, liegt es am Format und nicht an der Laufzeit. Dank der Tests aus Lektion M2.1 sehen Sie das sofort.

Das alte und das neue Format

Klassisches Format SDK-Format
Kopf ToolsVersion, zwei Import-Zeilen, Projekt-GUID <Project Sdk="Microsoft.NET.Sdk">
Quelldateien jede Compile-Zeile einzeln alle .cs-Dateien unter dem Projektordner, ohne Eintrag
Pakete packages.config, Ordner packages, HintPath PackageReference in der Projektdatei
Assembly-Angaben Properties/AssemblyInfo.cs Eigenschaften der Projektdatei, vom SDK erzeugt
Zielframework TargetFrameworkVersion v4.8 TargetFramework net48, auch mehrere: TargetFrameworks
Konfigurationen zwei PropertyGroup für Debug und Release die Voreinstellungen des SDK

Das SDK-Format ist kürzer, kennt mehrere Ziele in einer Datei und ist für .NET vorgeschrieben. Und es bindet alle .cs-Dateien unterhalb des Projektordners von selbst ein. Das ist bequem, hat aber eine Folge: Eine Datei, die Sie vergessen haben zu löschen, wird mitkompiliert.