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.