O que é o formato de ficheiro SLN?
.sln é um formato de arquivo de projeto associado ao Microsoft Visual Studio. Arquivos .sln são conhecidos coletivamente como arquivos de solução - um tipo de contêiner de organização de projetos que agrupa múltiplos projetos relacionados em um único espaço de trabalho. As soluções são usadas por desenvolvedores de software para gerenciar todos os componentes de um produto (bibliotecas, executáveis, suítes de teste) em um só lugar.
Um arquivo .sln é um arquivo de texto simples, UTF-8 com BOM. Ele abre com uma linha de cabeçalho como Microsoft Visual Studio Solution File, Format Version 12.00, seguida por um comentário identificando a versão do Visual Studio. O corpo usa uma sintaxe personalizada de blocos Project(...) - cada um referenciando um arquivo de projeto individual, como um .csproj ou .vcxproj por um GUID e um caminho relativo - e seções Global que armazenam configurações de compilação e ajustes em nível de solução.
As soluções permitem que os desenvolvedores criem modelos e configurações compartilhados que se aplicam a todos os projetos membros. Projetos armazenados em um arquivo .sln podem compartilhar recursos e configurações com outros projetos, mesmo quando são compilados como assemblies separados.
A .NET CLI (dotnet sln) pode compilar e gerenciar arquivos .sln no Windows, macOS e Linux. O JetBrains Rider e o Visual Studio Code com o C# Dev Kit também os abrem de forma multiplataforma. A Microsoft introduziu um formato sucessor baseado em XML, .slnx, no Visual Studio 2022 17.10 como uma alternativa mais simples e amigável para comparações de diff.
Segurança e proteção
RISCO: MEDIUMO arquivo .sln em si é texto simples e inofensivo de ler. O risco real é o que abrir uma solução e compilá-la/executá-la faz: soluções do Visual Studio podem executar scripts pré-compilação/pós-compilação, alvos MSBuild, restauração de NuGet e código de projeto ao compilar/depurar. Abrir uma solução não confiável da internet e pressionar Compilar/Executar pode executar código arbitrário - o Visual Studio mostra um aviso de «confiança» para soluções baixadas exatamente por esse motivo. Inspecione os projetos/scripts de uma solução desconhecida antes de compilar e não compile código em que você não confia.
Detalhes do formato
em resumoProgramas que abrem arquivos SLN
Detalhes técnicos
especificação profunda| Tipo de formato | Manifesto de projeto em texto simples usando uma sintaxe personalizada de blocos Project/Global; não é XML ou INI |
| Codificação | UTF-8 com BOM (Byte Order Mark) |
| Identificação do arquivo | A primeira linha não em branco lê-se „Microsoft Visual Studio Solution File, Format Version 12.00”; sem bytes mágicos binários |
| Versão atual do formato | 12.00, usada pelo Visual Studio 2012 até o Visual Studio 2022 e 2025 |
| Blocos de referência de projeto | Cada projeto membro declarado como um bloco Project() contendo nome de exibição, caminho relativo para o arquivo de projeto e dois GUIDs (tipo e identidade) |
| GUIDs de tipo de projeto | GUIDs específicos distinguem tipos de projeto: C# (FAE04EC0-...), C++ (8BC9CEB8-...), VB.NET (F184B08F-...), pasta de solução (2150E333-...) |
| Armazenamento de configuração de compilação | GlobalSection(SolutionConfigurationPlatforms) mapeia combinações de Debug/Release e x86/x64/AnyCPU em todos os projetos membros |
| Suporte a projetos aninhados | GlobalSection(NestedProjects) atribui projetos a pastas de solução para hierarquia organizacional dentro da IDE |
| Arquivo complementar | .suo (Solution User Options) armazena configurações por usuário, como pontos de interrupção e editores abertos; excluído do controle de versão |
| Finais de linha | CRLF no Windows por padrão; o analisador tolera LF, mas os geradores normalmente emitem CRLF |
| Integração CLI | O comando dotnet sln adiciona, remove e lista projetos sem abrir o Visual Studio; funciona de forma multiplataforma |
| Formato sucessor | .slnx (baseado em XML) introduzido como opcional no Visual Studio 2022 17.10, mais simples e amigável para diff em controle de versão |
| Prática de controle de origem | O .sln é enviado ao VCS; o .suo é excluído via modelo .gitignore padrão do Visual Studio |
| Lançado | 1997 (Visual Studio / Visual Studio 97) |
| Especificação | learn.microsoft.com |
Conversões de SLN
Perguntas e Respostas da Comunidade
perguntado por usuáriosAinda não há perguntas - seja o primeiro a perguntar sobre arquivos SLN.