mconfig(1) Utility for modifying .NET configuration files


mconfig [options] command [command_parameters]


mconfig can be used to edit .NET configuration files, by adding "features" (that is sets of xml statements) defined in one of the config files read by mconfig. The config file can also define layouts of default configuration files, which may be useful for bootstrapping your .NET projects.

To see the list of recognized commands, default configuration files and features, run mconfig without passing any parameters.


-c <config_file>, --config=<config_file>
Read the specified config file after reading the other, preconfigured, config files for the utility. Settings in the specified file override those found in the other configuration locations.
-t {any | web | application}, --target={any | web | application}
Features and default configuration files defined in the mconfig config file(s) can be assigned to one of the three targets - web (for ASP.NET features/config files), application - for .NET applications, any - applicable in both of the previous targets. Defaults to any.
-?, -h, --help
Show a summary usage screen.
-v, --version
Show the mconfig version


{addfeature, af} <feature_name> [config_file_path]
Adds the feature named <feature_name> to the specified config file. If [config_file_path] is omitted, the name of the output configuration file will be chosen based on the selected target (see the -t option). The web target outputs configuration to file named Web.config, and the application target outputs to file named application.exe.config. The any target does not have a default output file.

If the specified config file exists, the feature will be injected into it at the locations specified by mconfig configuration. If the target config file does not exist, it will be created and will contain only the specified feature and all its dependencies.

{defaultconfig, dc} [config_name [target_directory]]
Generates a default config file using the configuration entry named [config_name] and outputs the resulting configuration file to the directory given by the [target_directory] option. If [config_name] is omitted, it defaults to Web.config for the web target and application target. The any target does not specify any default output configuration name. If the [target_directory] parameter is omitted, it defaults to the current directory.

Name of the output config file created in [target_directory] is given in the config file layout definition.


Config files are read in the order given below. Each subsequent file may override settings found in the files read before it.
The default configuration file, distributed with mconfig. $prefix is the mconfig installation prefix specified on the compilation time.
$config_dir is the directory specified in the XDG_CONFIG_HOME environment variable or,
 if it is empty, in the .config directory located in the user's home directory. This file is not distributed with Mono.
Local configuration file which can contain per-application settings.


Written by Marek Habersack


Copyright (C) 2007 Novell, Inc (


Visit: for details