Microsoft hat nun nach Jahren des Feedbacks ein neues Datei-Format für Solution-Dateien umgesetzt, das mit der aktuellen Preview von Visual Studio getestet werden kann.
Das zukünftige Dateiformat "slnx" wird rein XML-basiert sein, wie man es aus anderen modernen Verwaltungsdateien wie csproj ebenfalls kennt und massiv verkleinert werden.
Das neue Dateiformat bietet eine deutlich verbesserte Lesbarkeit, es ist manuell (leichter) editierbar, folgt dem XML-Standard und ist so einfacher auch für externe Tools interpretierbar und senkt das Potential von defekten Dateien nach Git-Merges.
Eine bisher 37 Zeilen lange Solutiondatei
Microsoft Visual Studio Solution File, Format Version 12.00
# Visual Studio Version 17
VisualStudioVersion = 17.9.34407.89
MinimumVisualStudioVersion = 10.0.40219.1
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "ConsoleApp1", "ConsoleApp1\ConsoleApp1.csproj", "{D5991777-2F40-49C9-BB75-78228CB25021}"
EndProject
Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "Solution Items", "Solution Items", "{2BDE57F7-2328-4C85-998C-DE491FB76CFE}"
ProjectSection(SolutionItems) = preProject
Directory.Build.props = Directory.Build.props
EndProjectSection
EndProject
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "ClassLibrary1", "ClassLibrary1\ClassLibrary1.csproj", "{F1E36EA1-B227-4311-BA97-DFFFD7B3D777}"
EndProject
Global
GlobalSection(SolutionConfigurationPlatforms) = preSolution
Debug|Any CPU = Debug|Any CPU
Release|Any CPU = Release|Any CPU
EndGlobalSection
GlobalSection(ProjectConfigurationPlatforms) = postSolution
{D5991777-2F40-49C9-BB75-78228CB25021}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
{D5991777-2F40-49C9-BB75-78228CB25021}.Debug|Any CPU.Build.0 = Debug|Any CPU
{D5991777-2F40-49C9-BB75-78228CB25021}.Release|Any CPU.ActiveCfg = Release|Any CPU
{D5991777-2F40-49C9-BB75-78228CB25021}.Release|Any CPU.Build.0 = Release|Any CPU
{F1E36EA1-B227-4311-BA97-DFFFD7B3D777}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
{F1E36EA1-B227-4311-BA97-DFFFD7B3D777}.Debug|Any CPU.Build.0 = Debug|Any CPU
{F1E36EA1-B227-4311-BA97-DFFFD7B3D777}.Release|Any CPU.ActiveCfg = Release|Any CPU
{F1E36EA1-B227-4311-BA97-DFFFD7B3D777}.Release|Any CPU.Build.0 = Release|Any CPU
EndGlobalSection
GlobalSection(SolutionProperties) = preSolution
HideSolutionNode = FALSE
EndGlobalSection
GlobalSection(ExtensibilityGlobals) = postSolution
SolutionGuid = {CB456CB7-F491-48D5-B012-38A64C9AF96E}
EndGlobalSection
EndGlobal
ist zukünftig nur noch 7 Zeilen lang bei gleichbleibender Bedeutung.
<Solution>
<Folder Name="/Solution Items/">
<File Path="Directory.Build.props" />
</Folder>
<Project Path="ClassLibrary1\ClassLibrary1.csproj" />
<Project Path="ConsoleApp1\ConsoleApp1.csproj" />
</Solution>
Aktuell ist dies ein Preview-Feature, das exklusiv zum Testen in Visual Studio (ab 17.10) aktiviert werden muss. Danach kann eine bestehende Solution-Datei über "Save As" als SLNX-Format exportiert werden.
Andere Tools wie Visual Studio Code oder die .NET CLI unterstützen das neue Format aktuell nicht.
Microsoft bittet entsprechend um das Testen der neuen Datei und um Feedback über den Visual Studio-Kanal.