O que é o formato de ficheiro SUO?
Um arquivo .suo armazena o estado pessoal da IDE para uma solução do Visual Studio - as configurações que pertencem a um usuário específico em uma máquina específica, não à solução em si. Quando você abre uma solução, o Visual Studio registra o layout do seu editor, quais documentos estão abertos e onde seu cursor está posicionado, a configuração de compilação ativa (Debug ou Release), locais de breakpoints, histórico de Localizar/Substituir e arranjos de janelas de ferramentas no arquivo .suo junto ao arquivo de solução .sln.
O formato é um contêiner de armazenamento estruturado binário OLE2 Compound File Binary (CFBF) - o mesmo contêiner usado pelos arquivos legados .doc e .xls. Cada pacote instalado do Visual Studio grava seu próprio fluxo (stream) nomeado no arquivo composto para persistir seu estado. A assinatura mágica de oito bytes D0 CF 11 E0 A1 B1 1A E1 é compartilhada por todos os arquivos OLE2/CFBF; os nomes de fluxo internos, como SolutionConfiguration e TaskListOptions, o identificam como um .suo.
Como os arquivos .suo são por usuário e por máquina, eles nunca devem ser enviados para o controle de versão - adicione *.suo ao seu .gitignore. Se a IDE se comportar de maneira errática (configurações de compilação erradas, breakpoints ausentes), excluir o .suo é a primeira etapa padrão de solução de problemas; o Visual Studio o recria automaticamente na próxima inicialização. O arquivo é marcado como oculto no sistema de arquivos.
A partir do Visual Studio 2015, a Microsoft começou a migrar esse estado para uma pasta oculta .vs\ ao lado da solução. O Visual Studio 2017 e versões posteriores não criam mais um arquivo .suo monolítico; os dados equivalentes residem em .vs\{solution-name}\v15\ como arquivos binários e JSON granulares. A extensão .suo é efetivamente legada para qualquer projeto aberto no VS 2017 ou mais recente.
Segurança e proteção
RISCO: LOWArquivos SUO são armazenamentos de dados binários passivos - eles não representam risco de execução por si sós. Eles podem vazar dados específicos do desenvolvedor: caminhos de arquivos na máquina local, estrutura do projeto e configurações de extensões. Por esse motivo, eles não devem ser compartilhados publicamente (adicione *.suo ao .gitignore). Um arquivo CFBF maliciosamente criado poderia, em teoria, explorar um bug no analisador CFBF do Visual Studio, mas este é um risco muito teórico para arquivos .suo recebidos de fontes desconhecidas.
Detalhes do formato
em resumoProgramas que abrem arquivos SUO
Detalhes técnicos
especificação profunda| Formato de contêiner | Armazenamento estruturado OLE2 Compound File Binary Format (CFBF) |
| Bytes mágicos | D0 CF 11 E0 A1 B1 1A E1 no deslocamento 0 (assinatura OLE2 compartilhada) |
| Codificação | Binário, little-endian |
| Fluxos internos | Fluxos CFBF nomeados por pacote do Visual Studio, identificados por nomes derivados de GUID |
| Estado armazenado | Documentos abertos e posições do cursor, layout do editor, breakpoints, configuração de compilação ativa, histórico de Localizar/Substituir, configurações específicas de extensões |
| Tamanho de arquivo típico | 5 KB - 5 MB (cresce com o número de arquivos abertos, breakpoints e extensões) |
| Atributo do sistema de arquivos | Marcado como oculto; armazenado ao lado do arquivo .sln na raiz da solução |
| Controle de origem | Deve ser excluído do VCS; adicione *.suo ao .gitignore |
| Auto-recriação | Regenerado automaticamente pelo Visual Studio quando excluído; a exclusão é uma etapa segura de solução de problemas |
| Tamanho do setor CFBF | Setores de 512 bytes (formato CFBF v3) |
| Isolamento de fluxo | Cada pacote ou extensão instalada do VS grava seu próprio fluxo nomeado isolado |
| Status de legado | Substituído pela pasta oculta .vs (VS 2015+); não criado pelo VS 2017 e posteriores |
| SO associado | Windows |
| Recuperação de corrupção | Excluir o .suo e reabrir a solução é o primeiro passo padrão para estados corrompidos da IDE |
| Lançado | 1997 (Visual Studio 97 / Visual Studio 5.0) |
| Versão mais recente | Visual Studio 2015 and earlier: binary CFBF .suo; Visual Studio 2015 also introduced a hidden .vs\ folder variant. Visual Studio 2017+ replaced the monolithic .suo with the hidden .vs\{solution}\v15\ directory containing granular JSON/binary files - the .suo extension is essentially legacy as of 2017. |
| Especificação | learn.microsoft.com |
Conversões de SUO
Perguntas e Respostas da Comunidade
perguntado por usuáriosAinda não há perguntas - seja o primeiro a perguntar sobre arquivos SUO.