Vad är filformatet SLN?
.sln är ett projektfilformat associerat med Microsoft Visual Studio. .sln-filer kallas gemensamt för lösningsfiler - en typ av projektorganisationsbehållare som grupperar flera relaterade projekt i en enda arbetsyta. Lösningar används av programvaruutvecklare för att hantera alla komponenter i en produkt (bibliotek, körbara filer, testsviter) på ett och samma ställe.
En .sln-fil är en vanlig textfil i UTF-8 med en BOM. Den inleds med en rubrikrad som Microsoft Visual Studio Solution File, Format Version 12.00, följt av en kommentar som identifierar Visual Studio-versionen. Innehållet använder en anpassad syntax med Project(...)-block - där varje block refererar till en enskild projektfil som en .csproj eller .vcxproj via ett GUID och en relativ sökväg - samt Global-sektioner som lagrar byggkonfigurationer och inställningar på lösningsnivå.
Lösningar gör det möjligt för utvecklare att skapa delade mallar och konfigurationer som gäller för alla ingående projekt. Projekt som lagras i en .sln-fil kan dela resurser och inställningar med andra projekt även när de kompileras som separata sammansättningar (assemblies).
.NET CLI (dotnet sln) kan bygga och hantera .sln-filer på Windows, macOS och Linux. JetBrains Rider och Visual Studio Code med C# Dev Kit kan också öppna dem plattformsoberoende. Microsoft introducerade ett XML-baserat efterföljarformat, .slnx, i Visual Studio 2022 17.10 som ett enklare och mer diff-vänligt alternativ.
Säkerhet & trygghet
RISK: MEDIUMSjälva .sln-filen är vanlig text och ofarlig att läsa. Den verkliga risken ligger i vad som händer när man öppnar en lösning och bygger/kör den: Visual Studio-lösningar kan köra skript före/efter bygge, MSBuild-targets, NuGet-återställning och projektkod vid bygge/felsökning. Att öppna en okänd lösning från internet och trycka på Build/Run kan exekvera godtycklig kod - Visual Studio visar en förtroendefråga för nedladdade lösningar av just denna anledning. Granska projekt och skript i en obekant lösning innan du bygger, och bygg aldrig kod du inte litar på.
Formatdetaljer
i ett nötskalProgram som öppnar SLN-filer
Tekniska detaljer
djup specifikation| Formattyp | Projektmanifest i klartext som använder en anpassad Project/Global-block-syntax; inte XML eller INI |
| Kodning | UTF-8 med BOM (Byte Order Mark) |
| Filidentifiering | Första raden som inte är tom lyder «Microsoft Visual Studio Solution File, Format Version 12.00»; inga binära magic bytes |
| Nuvarande formatversion | 12.00, används av Visual Studio 2012 till och med Visual Studio 2022 och 2025 |
| Projektreferensblock | Varje ingående projekt deklareras som ett Project()-block som innehåller visningsnamn, relativ sökväg till projektfilen och två GUID:er (typ och identitet) |
| GUID:er för projekttyper | Specifika GUID:er skiljer på projekttyper: C# (FAE04EC0-...), C++ (8BC9CEB8-...), VB.NET (F184B08F-...), lösningsmapp (2150E333-...) |
| Lagring av byggkonfiguration | GlobalSection(SolutionConfigurationPlatforms) mappar kombinationer av Debug/Release och x86/x64/AnyCPU över alla ingående projekt |
| Stöd för nästlade projekt | GlobalSection(NestedProjects) tilldelar projekt till lösningsmappar för organisatorisk hierarki i IDE:n |
| Följefil | .suo (Solution User Options) lagrar användarspecifika inställningar som brytpunkter och öppna redigeringsfönster; exkluderas från versionshantering |
| Radbrytningar | CRLF på Windows som standard; tolken accepterar LF men generatorer skapar vanligtvis CRLF |
| CLI-integration | Kommandot dotnet sln lägger till, tar bort och listar projekt utan att öppna Visual Studio; fungerar plattformsoberoende |
| Efterföljarformat | .slnx (XML-baserat) introducerades som tillval i Visual Studio 2022 17.10, enklare och mer diff-vänligt för versionshantering |
| Praxis för källkodshantering | .sln checkas in i VCS; .suo exkluderas via Visual Studios standardmall för .gitignore |
| Släppt | 1997 (Visual Studio / Visual Studio 97) |
| Specifikation | learn.microsoft.com |
SLN-konverteringar
Frågor & svar
frågat av användareInga frågor än - bli den första att fråga om SLN-filer.