Wat is het SUO-bestandsformaat?
Een .suo-bestand slaat de persoonlijke IDE-status op voor een Visual Studio-oplossing - de instellingen die horen bij een specifieke gebruiker op een specifieke machine, niet bij de oplossing zelf. Wanneer u een oplossing opent, legt Visual Studio uw editor-indeling vast, welke documenten geopend zijn en waar uw cursor zich bevindt, de actieve build-configuratie (Debug of Release), locaties van breakpoints, Zoek/Vervang-geschiedenis en de schikking van tool-vensters in het .suo-bestand naast het .sln-oplossingsbestand.
Het formaat is een binair OLE2 Compound File Binary (CFBF) structured-storage-container - dezelfde container die wordt gebruikt door verouderde .doc- en .xls-bestanden. Elk geïnstalleerd Visual Studio-pakket schrijft zijn eigen benoemde stream naar het samengestelde bestand om de status te behouden. De acht-byte magic signature D0 CF 11 E0 A1 B1 1A E1 wordt gedeeld door alle OLE2/CFBF-bestanden; de interne streamnamen zoals SolutionConfiguration en TaskListOptions identificeren het als een .suo.
Omdat .suo-bestanden per gebruiker en per machine zijn, mogen ze nooit worden toegevoegd aan versiebeheer - voeg *.suo toe aan uw .gitignore. Als de IDE zich onregelmatig gedraagt (verkeerde build-configuraties, ontbrekende breakpoints), is het verwijderen van de .suo de standaard eerste stap bij probleemoplossing; Visual Studio maakt deze automatisch opnieuw aan bij de volgende start. Het bestand is gemarkeerd als verborgen in het bestandssysteem.
Vanaf Visual Studio 2015 is Microsoft begonnen met het migreren van deze status naar een verborgen .vs\-map naast de oplossing. Visual Studio 2017 en later maken geen monolithisch .suo-bestand meer aan; de equivalente gegevens bevinden zich in .vs\{solution-name}\v15\ als granulaire JSON- en binaire bestanden. De extensie .suo is effectief verouderd voor elk project dat wordt geopend in VS 2017 of nieuwer.
Beveiliging & veiligheid
RISICO: LOWSUO-bestanden zijn passieve binaire gegevensopslag - ze vormen op zichzelf geen risico voor uitvoering. Ze kunnen ontwikkelaarsspecifieke gegevens lekken: bestandspaden op de lokale machine, projectstructuur en extensieconfiguraties. Om deze reden mogen ze niet openbaar worden gedeeld (voeg *.suo toe aan .gitignore). Een kwaadwillig samengesteld CFBF-bestand zou in theorie een bug in de CFBF-parser van Visual Studio kunnen misbruiken, maar dit is een zeer theoretisch risico voor .suo-bestanden die van onbekende bronnen worden ontvangen.
Formaatdetails
in een notendopProgramma's die SUO-bestanden openen
Technische details
diepe specificaties| Containerformaat | OLE2 Compound File Binary Format (CFBF) structured storage |
| Magic bytes | D0 CF 11 E0 A1 B1 1A E1 op offset 0 (gedeelde OLE2-handtekening) |
| Codering | Binair, little-endian |
| Interne streams | Benoemde CFBF-streams per Visual Studio-pakket, geïdentificeerd door van GUID afgeleide namen |
| Opgeslagen status | Geopende documenten en cursorposities, editor-indeling, breakpoints, actieve build-configuratie, Zoek/Vervang-geschiedenis, extensie-specifieke instellingen |
| Typische bestandsgrootte | 5 KB - 5 MB (groeit met het aantal geopende bestanden, breakpoints en extensies) |
| Bestandssysteemkenmerk | Gemarkeerd als verborgen; opgeslagen naast het .sln-bestand in de root van de oplossing |
| Bronbeheer | Moet worden uitgesloten van VCS; voeg *.suo toe aan .gitignore |
| Automatische herschepping | Automatisch opnieuw gegenereerd door Visual Studio bij verwijdering; verwijderen is een veilige stap voor probleemoplossing |
| CFBF-sectorgrootte | 512-byte sectoren (CFBF v3-formaat) |
| Stream-isolatie | Elk geïnstalleerd VS-pakket of extensie schrijft zijn eigen geïsoleerde benoemde stream |
| Legacy-status | Vervangen door de verborgen .vs-map (VS 2015+); niet aangemaakt door VS 2017 en later |
| Bijbehorend OS | Windows |
| Herstel bij corruptie | Het verwijderen van de .suo en het heropenen van de oplossing is de standaard eerste stap bij een corrupte IDE-status |
| Uitgebracht | 1997 (Visual Studio 97 / Visual Studio 5.0) |
| Laatste versie | 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. |
| Specificatie | learn.microsoft.com |
SUO conversies
Community V&A
gevraagd door gebruikersNog geen vragen - wees de eerste om iets te vragen over SUO-bestanden.