如何从命令行参数中选择.Net应用程序配置文件?

Dar*_*ler 16 .net configuration configurationmanager

我想通过传递命令行参数来覆盖标准app.config的使用.如何更改默认应用程序配置文件,以便在访问ConfigurationManager.AppSettings时访问命令行中指定的配置文件?

编辑:

事实证明,加载与EXE加上.config名称不同的配置文件的正确方法是使用OpenMappedExeConfiguration.例如

ExeConfigurationFileMap configFile = new ExeConfigurationFileMap();
configFile.ExeConfigFilename = Path.Combine(Environment.CurrentDirectory, "Shell2.exe.config");
currentConfiguration = ConfigurationManager.OpenMappedExeConfiguration(configFile,ConfigurationUserLevel.None);
Run Code Online (Sandbox Code Playgroud)

这部分有效.我可以在appSettings部分看到所有键,但所有值都为null.

Dar*_*ler 14

所以这里的代码实际上允许我实际访问除默认配置文件之外的配置文件中的appSettings部分.

ExeConfigurationFileMap configFile = new ExeConfigurationFileMap();
configFile.ExeConfigFilename = Path.Combine(Environment.CurrentDirectory, "Alternate.config");
Configuration config = ConfigurationManager.OpenMappedExeConfiguration(configFile,ConfigurationUserLevel.None);

AppSettingsSection section = (AppSettingsSection)config.GetSection("appSettings");
string MySetting = section.Settings["MySetting"].Value;
Run Code Online (Sandbox Code Playgroud)