Anzeige
Anzeige
Anzeige
Anzeige
Anzeige
Anzeige
Lesedauer 4 Min.

Neue Zöpfe ankleben

Statt durch eine proprietäre SLN-Datei wird ein Visual-Studio-Projekt künftig durch eine XML-Datei beschrieben.
© dotnetpro
Das .NET-Ökosystem ist seit .NET Core generalüberholt, und auch das Tooling rund um die .NET-Projekte hat sich recht stark geändert. An die Stelle von packages.config und NuGet trat (glücklicherweise) die PackageReference, die .csproj-Dateien sind endlich gut lesbar, und jetzt geht Micro­soft die nächste Baustelle an: die Solution-Datei.

Die SLN-Datei

Die Solutiondatei mit der Namenserweiterung .sln beschreibt für Visual Studio respektive alle anderen IDEs, wie sich die Lösung – also das Gesamtprojekt – aus den Unterprojekten zusammensetzt. Dabei hat sich Microsoft historisch bedingt eines eigenen, proprietären Formats bedient (Bild 1).
Ein Beispiel für das proprietäre Format der SLN-Datei (Bild 1) © Autor
Bei näherem Hinsehen entpuppt sich eine einfache Solutiondatei als Text, der erst einmal viel Interpretationsspielraum zulässt. Es werden darin Visual-Studio-Versionen gespeichert sowie auch globale Dinge wie die Konfiguration von Any CPU, x86 oder ARM. Jedes Projekt ist mit einer ominösen GUID referenziert und somit Bestandteil der Solution. Auch wenn Änderungen an Solutiondateien eher sporadischer Natur sind, kommen sie vor. Will man dann noch – vielleicht aufgrund von Konflikten in der Quellcodeverwaltung – mergen, ist der Spaß vorprogrammiert. Zeit, hier endlich aufzuräumen.

Die Neuerung

Microsoft baut gerade ein neues Format mit der Dateiendung .slnx. Dieses Format wird in Zukunft eine aufgeräumtere Solutiondatei ermöglichen. Um dieses Feature auszuprobieren, benötigen Sie eine aktuelle Version von Visual Studio Preview, und zwar die Version 17.10 Preview 3.Nach der Installation der Version kann das Vorschaufeature SLNX aktiviert werden. Dies muss explizit in den Optionen von Visual Studio angeschaltet werden (Bild 2). Damit bringen Sie Visual Studio in die Lage, diese Dateien zu verarbeiten.
SLNX: Derzeit nur in der Vorschauversion verfügbar (Bild 2) © Autor
In den regulären Versionen von Visual Studio beziehungsweise in anderen IDEs wie Jetbrains Rider wird uns das Feature wahrscheinlich erst in ein paar Monaten begegnen.

Bestandssolution

Eine bestehende Solution kann zu einer SLNX-Fassung konvertiert werden. Dazu muss die Solution neu gespeichert werden. Selektieren Sie dafür in der Solution den Wurzelknoten.Anschließend taucht im Menüpunkt Datei | SlnSample.sln speichern unter … die neue Auswahlmöglichkeit Xml Solution File (*.slnx) in der Dropdown-Liste für den Dateityp auf (Bild 3).
Der neue Dateityp SLNX im Speichern-unter-Dialog (Bild 3) © Autor
Öffnen Sie die Solution nun erneut, befinden Sie sich bereits in der neuen Welt. Statt nun allerdings eine Vielzahl von neuen Features vorzufinden, hat sich durch die eingeschaltete Option rein funktional nichts geändert.Das einzige, was sich geändert hat, ist, wie die Projekte zu einer Solution zusammengefasst werden – eben über die neue SLNX-Datei.

Aufbau der SLNX-Datei

Aus der ursprünglichen SLN-Datei mit mehreren Zeilen und viel Blabla wurde eine extrem komprimierte Datei:

<Solution>
  <Project Path="SlnSample\SlnSample.csproj" />
</Solution> 
Tatsächlich hat sich Microsoft bei der slnx-Datei auf ein recht bekanntes Format besonnen: XML. Was mit .csproj-Dateien mittlerweile Standard ist, beglückt nun auch in der Solutiondatei. Somit haben wir hier den gleichen Komfort wie bei den .csproj-Dateien.Probeweise fügen wir gleich ein paar neue Projekte der Solution hinzu. Unter anderem ist auch ein .NET-Framework-Projekt dabei. Das klappt auf Anhieb. Somit steht auch älteren Projekten beziehungsweise anderen Projekttypen dieses neue Format offen.

<Solution>
  <Project Path="ConsoleApp1\ConsoleApp1.csproj" 
    Type="Classic C#" />
  <Project Path="SlnSample\SlnSample.csproj" />
  <Project 
    Path="WindowsFormsApp1\WindowsFormsApp1.csproj" 
    Type="Classic C#" />
</Solution> 
Spannend ist hier das Type-Attribut. Bei der initialen Konvertierung fehlte dieses Attribut. Das hat auch keine Probleme bereitet. Die neu hinzugefügten Projekte erhielten hingegen das Attribut mit dem Wert Classic C#. Hier dürfte die IDE noch weitere Informationen aus dem Attribut ziehen.Welche weiteren Typen noch möglich sind, ist zum Zeitpunkt der Entstehung des Artikels noch nirgends beschrieben.

Fazit

Der Autor des Artikels mag solche kleinen Putzaktionen, die Microsoft immer mal wieder einstreut. Das alte Format wird uns noch lange begleiten, doch empfiehlt sich das neue Format für neue Projekte. Die alten SLN-Dateien hat der Autor nie verstanden. Bei SLNX-Dateien sieht das anders aus.
Miscellaneous

Neueste Beiträge

CartoType: Einsatz mit Windows Forms - Mapping mit CartoType, Teil 2
Der Big-Tech-freie Kartendienst CartoType kann dazu beitragen, Anwendungen mit Maps-Diensten unabhängiger von Google, Apple und Co. zu machen. In diesem Beitrag soll das System in einer Windows-Forms-Applikation ins Leben gerufen werden.
5 Minuten
7. Sep 2026
Vom Sub-Agenten zum Schwarm - Kimi K3 – das Modell hinter dem Agenten, Teil 5
Mehr Agenten versprechen mehr Tempo, vervielfachen aber auch Abstimmung und Risiko. Ob aus paralleler Aktivität tatsächlich Fortschritt entsteht, entscheidet sich dort, wo spektakuläre Schwarmdemos meist enden.
5 Minuten
CartoType: Karte nach Maß - Mapping mit CartoType, Teil 1
Mit CartoType gibt es ein System, das Google Maps und Co. ersetzen kann und dabei das kompakte Dateiformat CTM1 nutzt. Mit durchaus vertretbarem Aufwand lassen sich solche CTM1-Kartendateien auch nach eigenen Bedürfnissen selbst erstellen.
5 Minuten
31. Aug 2026

Das könnte Dich auch interessieren

MessagePack: JSON als Binär-Image - Best of NuGet, Teil 10
Das Serialisierungsformat MessagePack wurde – anders als JSON – konsequent auf die Bedürfnisse von Maschinen und damit auch auf höchstmögliche Kompaktheit optimiert. Der Vorteil: Ein geringeres zu übertragendes Datenvolumen führt vor allem in IoT-nahen Anwendungen direkt zu geringeren Kosten.
6 Minuten
17. Aug 2026
Wiederholend wie ein Papagei: Polly - Best of NuGet, Teil 8
Viele Probleme der Systemtechnik lassen sich durch wiederholtes Versuchen oder durch Rate Limiting lösen. Die .NET-Bibliothek Polly stellt Entwicklern hierfür verschiedenste Maßnahmen zur Resilienz-Steigerung in Form von schlüsselfertigen Bausteinen zur Verfügung.
6 Minuten
10. Aug 2026
.NET-Anbindung für die Llama-KI - LLamaSharp
Open-Source-KI auf dem lokalen Gerät nutzen – mit handhabbarem Speicherbedarf und optionalem Zugriff auf externe Datenquellen.
8 Minuten
13. Jan 2025
Anzeige
Anzeige
Anzeige
Anzeige
Anzeige