a C# implementation of SettingsProvider for portable applications
Clone or download
Fetching latest commit…
Cannot retrieve the latest commit at this time.
Type Name Latest commit message Commit time
Failed to load latest commit information.



PortableSettingsProvider is a C# implementation of SettingsProvider for portable applications.


  1. Add src/PortableSettingsProvider.cs to your project.

  2. For each setting that should be portable, set the Provider property to the PortableSettingsProvider class, with a namespace qualifier if required. (By default this would be crdx.Settings.PortableSettingsProvider, but feel free to change the namespace and/or class name if you want.)

    The Properties Dialog

  3. Optionally, set the Roaming property to True for global settings, or False for local settings. (See Types below for an explanation.)

    Visual Studio currently defaults this to False.

  4. Read and write your application settings as you normally would.


Two types of settings are supported: global (roaming) and local.

Global (aka "Roaming")

Global settings are not tied to the current computer and are available to all running instances of the application, regardless of where it's running from.


Local settings are tied to the computer on which the application is running. The computer name is used as the unique identifier.

File format

The application settings are stored in an XML file in the same directory as the application. The filename is the same as the application's executable, with the file extension settings.

Global settings are stored in the /settings/globalSettings node.

Local settings are stored in the /settings/localSettings/[ComputerName] node.

Bugs or contributions

Open an issue or send a pull request.