RenderConfig allows the definition of a set of modifications that can be used to transform (or render) a set of source files to provide tailored configuration specific to a particular instance of an application.
A typical use case for this is where your application requires a set of configuration files that identify multiple servers that provide particular application services. These application servers will differ depending on whether you are running the application in development, testing or in production.
With RenderConfig, at build time you can explicitly produce a set of configuration files that support all of these configurations, providing the ability to ship the configuration with the other build artefacts.
- Takes a target file and copies to an output location, with the same or different filename, whilst applying a set of modifications.
- Allows creation of dependencies within configuration sets, ie "Development" configuration requires "Sydney" specific configuration which requires "Common".
- Provided as:
- A single assembly MSBuild plugin (MSBuild.RenderConfig.dll)
- A command line executable (RenderConfig.exe)
- Extensible (in code currently) to support many more types of configuration. Stay tuned, the list will grow.
- Manipulation of XML files
- Create/Update/Delete nodes and attributes based on XPath identification of change
- Works despite namespaces (ignores them...I know I know, but I just don't like them!)
- Keyword replacement
- Manipulation of INI files
- Create/Update/Delete keys, values and sections
- Keyword replacement
- Standard text files
- Keyword replacement
- Supports splitting of configurations into multiple files via includes
- Allows use of environment variables in modifications
- Environment variables can also be defined within a configuration
For a quick example, see here.