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.

Neueste Beiträge

SSH für.NET-Applikationen mit SSH.NET - Best of NuGet, Teil 1
SSH – dahinter verbirgt sich die Abkürzung Secure Shell – ist insbesondere im Bereich der unixoiden Systeme weit verbreitet. Mit SSH.NET steht ein NuGet-Paket zur Verfügung, das die Interaktion mit der sicheren Remote Shell aus .NET-Applikationen heraus zu ermöglichen sucht.
6 Minuten
25. Sep 2025
Ein Jahr CODELUTION Zertifizierungssystem – ein neuer Standard in der IT-Weiterbildung - [sponsered]
Das rollenbasierte Zertifizierungssystem für Entwickler-Schulungen der Karlsruher CODELUTION GmbH hebt sich bewusst von technologiegebundenen Zertifikaten ab.
3 Minuten
25. Sep 2025
DDC hakt nach: Wie baust Du eine Softwarearchitektur ohne Schuldenfalle auf?
Moderne Softwarearchitektur muss zukunftsfähig sein – aber auch schon heute funktionieren. David Tielke über den architektonischen Spagat zwischen Cloud, KI, Schuldenmanagement und gesundem Menschenverstand.
7 Minuten
22. Sep 2025
Miscellaneous

Das könnte Dich auch interessieren

.NET Framework 4.6.2 ist da - 03.08.2016, 00:00 Uhr
Viele der Neuerungen von .NET 4.6.2 basieren auf dem über UserVoice und Connect gegebenen Feedback von Entwicklern, so beispielsweise die Abschaffung des 260-Zeichen-Limits für Pfade.
2 Minuten
.NET-Wrapper für hilfreiche Bibliotheken - Empfohlene Downloads
Es gibt Funktionen, die will man nicht selbst programmieren. Vielleicht, weil diese selten benutzt werden oder weil es dafür schon Tools gibt. Doch auch das Anbinden von solchen Tools an eigene Software kann aufwendig sein. Es sei denn, Sie finden den passenden Wrapper. Und das dürfte in vielen Fällen kein Problem sein. Denn eines hat unsere Recherche für den Schwerpunkt der Heft-Disk ergeben: Wrapper gibt es wie Sand am Meer. Deshalb: Schmökern Sie rein ...
7 Minuten
14. Aug 2017
Erstellung von ZUGFeRD 2.3 mit .NET C# - Rechnungserstellung
ZUGFeRD 2.3 konforme Rechnungen mit TX Text Control .NET Server für ASP.NET erstellen.
3 Minuten
9. Jan 2025
Anzeige
Anzeige
Anzeige
Anzeige
Anzeige