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

00:00
MCP: Der USB-C-Stecker für Deine KI-App - Model Context Protocol auf der DWX
Jonah Andersson bringt es auf den Punkt: Das Model Context Protocol ist kein Hype-Buzzword, sondern eine echte Hilfe für .NET-Entwickler:innen. Wer MCP richtig einsetzt, spart sich aufwändige Integrationsarbeit – und behält trotzdem die Kontrolle über die eigene Business-Logik.
7. Apr 2026
SignalRC und Ping - Der DDC-Truck, Teil 10
Wie schnell ist die Verbindung zwischen Browser und Fahrzeug eigentlich?
9 Minuten
26. Mär 2026
Infinite AI Conference: So setzt Du KI in jedem Schritt des Software-Lifecycle ein - KI gehört in Deinen Workflow
Von den Anforderungen über Design, Implementierung bis zum Testen, Deployment und Monitoring: Auf der Infinite AI Conference 2026 erfährst Du, wie Dich die KI im gesamten Lifecycle unterstützen kann.
4 Minuten

Das könnte Dich auch interessieren

Elektronische Schaltkreise im Browser simulieren - Simulation
Statt mit Steckfeld oder Lötkolben kann man auf dieser Website Schaltungen per Drag and Drop zusammenstellen und deren Verhalten testen.
2 Minuten
26. Jul 2018
SignalRC baut auf DRY - Der DDC-Truck, Teil 8
DRY ist eines dieser Prinzipien, die jeder für selbstverständlich hält, die aber trotzdem oft nicht konsequent umgesetzt werden. In SignalRC ist das Shared-Projekt von Beginn an dabei.
11 Minuten
12. Mär 2026
Middleware, Datenbank und Testing im Alltag - Nest.js für .NET-Entwickler, Teil 4
Nest.js in der Praxis: Die Bausteine, die eine Nest.js-Anwendung produktionsreif machen.
6 Minuten
11. Mär 2026
Anzeige
Anzeige
Anzeige
Anzeige
Anzeige