by config-r

config-r / config-r

Write your .NET configuration files in C#

416 Stars 46 Forks Last release: almost 4 years ago (1.0.0) MIT License 480 Commits 32 Releases

Available items

No Items, yet!

The developer of this repository has not created any items for sale yet. Need a bug fixed? Help with integration? A different license? Create a request here:


Write your .NET configuration files in C# :sunglasses:.

Fed up with XML soup? Frustrated that app settings can only be strings? Want to do more in your configuration file than just define app settings? Then ConfigR is for you!

Get it at NuGet.

Powered by Roslyn.

Source Browser


  • Dev AppVeyor branch
  • Master AppVeyor branch


Checkout the quickstart to get an idea of the basics.

ConfigR does plenty more! Features include the ability to specify the path of your configuration file(s), multiple cascading configuration files and custom configurators. Checkout the samples for more info.

TIP: you can write any C# you like in your 'configuration file' :wink:. The Roslyn #load and #r features are both supported for loading scripts and referencing assemblies.


Releases will be pushed regularly to NuGet.

To build manually, clone or fork this repository and see 'How to build'.

Can I help to improve it and/or fix bugs?

Absolutely! Please feel free to raise issues, fork the source code, send pull requests, etc.

No pull request is too small. Even whitespace fixes are appreciated. Before you contribute anything make sure you read

How to build

Navigate to your clone root folder and execute

. The prerequisite you need is MSBuild 15, which is also included in Visual Studio 2017.

executes the default build targets which include compilation, test execution and packaging. After the build has completed, the build artifacts will be located in

You can also build the solution using Visual Studio 2017 or later. At the time of writing the build is only confirmed to work on Windows using the Microsoft .NET framework 4.6+.


  • View the full list of build targets:

    build.cmd -T
  • Run a specific target:

    build.cmd build
  • Run multiple targets:

    build.cmd build pack
  • View the full list of options:

    build.cmd -?

What do the version numbers mean?

ConfigR uses Semantic Versioning.

We use cookies. If you continue to browse the site, you agree to the use of cookies. For more information on our use of cookies please see our Privacy Policy.