Wat is het SLN-bestandsformaat?
.sln is een projectbestandsformaat dat geassocieerd wordt met Microsoft Visual Studio. .sln-bestanden staan gezamenlijk bekend als solution-bestanden - een type container voor projectorganisatie die meerdere gerelateerde projecten groepeert in één werkruimte. Solutions worden door softwareontwikkelaars gebruikt om alle componenten van een product (bibliotheken, uitvoerbare bestanden, testsuites) op één plek te beheren.
Een .sln-bestand is een tekstbestand in UTF-8 met een BOM. Het opent met een header-regel zoals Microsoft Visual Studio Solution File, Format Version 12.00, gevolgd door een commentaar dat de Visual Studio-versie identificeert. De body gebruikt een aangepaste syntaxis van Project(...)-blokken - elk verwijzend naar een individueel projectbestand zoals een .csproj of .vcxproj via een GUID en een relatief pad - en Global-secties die build-configuraties en instellingen op solution-niveau opslaan.
Solutions stellen ontwikkelaars in staat om gedeelde sjablonen en configuraties te maken die van toepassing zijn op alle aangesloten projecten. Projecten die in een .sln-bestand zijn opgeslagen, kunnen bronnen en instellingen delen met andere projecten, zelfs wanneer ze als afzonderlijke assemblies worden gecompileerd.
De .NET CLI (dotnet sln) kan .sln-bestanden bouwen en beheren op Windows, macOS en Linux. JetBrains Rider en Visual Studio Code met de C# Dev Kit openen ze ook platformonafhankelijk. Microsoft introduceerde een op XML gebaseerde opvolger, .slnx, in Visual Studio 2022 17.10 als een eenvoudiger, meer „diff-vriendelijk” alternatief.
Beveiliging & veiligheid
RISICO: MEDIUMHet .sln-bestand zelf is platte tekst en ongevaarlijk om te lezen. Het echte risico ligt in wat het openen van een solution en het bouwen/uitvoeren ervan doet: Visual Studio-solutions kunnen pre-build/post-build scripts, MSBuild-targets, NuGet-restore en projectcode uitvoeren bij het bouwen/debuggen. Het openen van een onbetrouwbare solution van internet en het drukken op Build/Run kan willekeurige code uitvoeren - Visual Studio toont precies om deze reden een „vertrouwensmelding” voor gedownloade solutions. Inspecteer de projecten/scripts van een onbekende solution voordat u deze bouwt, en bouw geen code die u niet vertrouwt.
Formaatdetails
in een notendopProgramma's die SLN-bestanden openen
Technische details
diepe specificaties| Formaat-type | Projectmanifest in platte tekst met een aangepaste Project/Global-blok-syntaxis; geen XML of INI |
| Codering | UTF-8 met BOM (Byte Order Mark) |
| Bestandsidentificatie | Eerste niet-lege regel luidt „Microsoft Visual Studio Solution File, Format Version 12.00”; geen binaire magic bytes |
| Huidige formaatversie | 12.00, gebruikt door Visual Studio 2012 tot en met Visual Studio 2022 en 2025 |
| Projectverwijzingsblokken | Elk aangesloten project wordt gedeclareerd als een Project()-blok met weergavenaam, relatief pad naar het projectbestand en twee GUID's (type en identiteit) |
| Projecttype-GUID's | Specifieke GUID's onderscheiden projecttypen: C# (FAE04EC0-...), C++ (8BC9CEB8-...), VB.NET (F184B08F-...), solution-map (2150E333-...) |
| Opslag build-configuratie | GlobalSection(SolutionConfigurationPlatforms) koppelt Debug/Release en x86/x64/AnyCPU combinaties over alle aangesloten projecten |
| Ondersteuning voor geneste projecten | GlobalSection(NestedProjects) wijst projecten toe aan solution-mappen voor organisatorische hiërarchie binnen de IDE |
| Bijbehorend bestand | .suo (Solution User Options) slaat gebruikersspecifieke instellingen op zoals breekpunten en geopende editors; uitgesloten van versiebeheer |
| Regeleinden | Standaard CRLF op Windows; de parser tolereert LF maar generators produceren doorgaans CRLF |
| CLI-integratie | dotnet sln commando voegt projecten toe, verwijdert ze en geeft ze weer zonder Visual Studio te openen; werkt platformonafhankelijk |
| Opvolgend formaat | .slnx (op XML gebaseerd) geïntroduceerd als opt-in in Visual Studio 2022 17.10, eenvoudiger en meer diff-vriendelijk voor versiebeheer |
| Best practice voor bronbeheer | .sln wordt toegevoegd aan VCS; .suo wordt uitgesloten via het standaard .gitignore-sjabloon van Visual Studio |
| Uitgebracht | 1997 (Visual Studio / Visual Studio 97) |
| Specificatie | learn.microsoft.com |
SLN conversies
Community V&A
gevraagd door gebruikersNog geen vragen - wees de eerste om iets te vragen over SLN-bestanden.