Wat is het SETTINGS-bestandsformaat?
Een .settings-bestand is een XML-document dat door Visual Studio wordt gebruikt om getypeerde, persistente applicatie- en gebruikersinstellingen te definiëren in .NET-desktopprojecten. Het bevindt zich in de map Properties/ van C#-projecten (of My Project/ in VB.NET) en heet bijna altijd Settings.settings.
De XML-structuur gebruikt een <SettingsFile> root-element met daarin <Setting>-vermeldingen, elk met een naam, een .NET-type (System.String, System.Drawing.Color, enz.), een bereik (Application of User) en een standaardwaarde. Tijdens het compileren genereert MSBuild een sterk getypeerde wrapper-klasse - meestal Properties.Settings - zodat instellingen in de code toegankelijk zijn als Properties.Settings.Default.MySettingName met volledige IntelliSense-ondersteuning.
Het bereik bepaalt het gedrag tijdens runtime:
- Application-scope instellingen zijn alleen-lezen tijdens runtime en worden opgeslagen in
app.config/app.exe.config - User-scope instellingen zijn lees- en schrijfbaar tijdens runtime en worden opgeslagen in
user.configin de map%AppData%van de gebruiker
Het .settings-schema is stabiel sinds .NET Framework 2.0 (Visual Studio 2005) en blijft de standaardaanpak voor WinForms- en WPF-desktopapplicaties tot en met .NET 8. Voor nieuwere cross-platform .NET 5+-projecten adviseert Microsoft in plaats daarvan appsettings.json met IConfiguration.
Beveiliging & veiligheid
RISICO: LOWEen .settings-bestand is platte XML en kan niet worden uitgevoerd. Het kan gevoelige informatie bevatten (verbindingsreeksen, API-sleutels, standaard gebruikersnamen/wachtwoorden) als de ontwikkelaar dergelijke gegevens heeft opgeslagen in Application-scope instellingen - controleer dit voordat u het deelt of toevoegt aan versiebeheer. User-scope instellingen met gevoelige gegevens zijn een risico als de user.config in AppData wordt blootgesteld.
Formaatdetails
in een notendop- Generieke applicatieconfiguratiebestanden (diversen) - Veel niet-.NET-applicaties en game-engines gebruiken .settings als een generieke extensie voor configuratie in XML- of INI-stijl - niet gerelateerd aan Visual Studio.
- Unity Editor-instellingen - Unity Engine gebruikt .settings-bestanden voor sommige interne editorvoorkeuren; een ander formaat dan Visual Studio .settings.
Programma's die SETTINGS-bestanden openen
Technische details
diepe specificaties| Bestandscodering | UTF-8 tekst (gedeclareerd in de XML-declaratieheader) |
| MIME-type | application/xml (alt: text/xml) |
| Root XML-element | <SettingsFile> met <Settings> en <Setting> sub-elementen |
| Instellingsbereik-types | Application (alleen-lezen bij runtime, opgeslagen in app.config) en User (lezen-schrijven, opgeslagen in user.config) |
| Runtime-pad voor User-scope | %AppData%\CompanyName\AppName\Version\user.config |
| Codegeneratie tijdens build | MSBuild genereert een sterk getypeerde Properties.Settings wrapper-klasse met via IntelliSense toegankelijke getypeerde accessors |
| Standaard bestandsnaam | Settings.settings (volgens conventie; één per project) |
| Locatie projectmap | Properties/ map (C#-projecten) of My Project/ map (VB.NET-projecten) |
| Schema-stabiliteit | Ongewijzigd van .NET Framework 2.0 / VS 2005 tot en met .NET 8 / VS 2022 |
| Ondersteunde waardetypes | Elk serialiseerbaar .NET-type: String, Int32, Boolean, Color, Size, verbindingsreeksen en aangepaste types |
| Besturingssysteem | Windows (.NET Framework en .NET desktop workloads) |
| Modern alternatief | appsettings.json + IConfiguration, aanbevolen voor .NET 5+ cross-platform projecten |
| Uitgebracht | 2005 (.NET Framework 2.0 / Visual Studio 2005) |
| Laatste versie | Current as of Visual Studio 2022 / .NET 8 (schema unchanged since .NET 2.0) |
| Specificatie | learn.microsoft.com |
SETTINGS conversies
Community V&A
gevraagd door gebruikersNog geen vragen - wees de eerste om iets te vragen over SETTINGS-bestanden.