默认情况下,.NET应用程序的配置文件以“exe文件名”.config命名.我想知道是否可以动态地指定一个应用程序的配置.
例如,构建的应用程序是“foo.exe”.在运行时,配置文件为“foo.exe.config”.有可能让它接受命令行参数来使用其他配置文件.因此,应用程序可以使用下面的其他配置.
foo.exe /config:bar.config
bar.config用作foo.exe.config的配置文件insteand.
解决方法
如果您只需要替换AppSettings部分,以上所有功能都可以正常工作.
如果您必须运行不同的配置文件(所有部分),您可能需要考虑使用主机启动应用程序,为主应用程序创建应用程序域,并根据您传入的参数设置不同的配置文件.
这是为我工作的代码:
AppDomainSetup setup = new AppDomainSetup(); setup.ApplicationBase = "file://" + System.Environment.CurrentDirectory; setup.DisallowBindingRedirects = true; setup.DisallowCodeDownload = true; if (args.Length != 0 && args[0].Equals("-test")) { setup.ConfigurationFile = "PATH_TO_YOUR_TEST_CONFIG_FILE"; } else { setup.ConfigurationFile = "PATH_TO_YOUR_LIVE_CONFIG_FILE"; } AppDomain domain = AppDomain.CreateDomain("FRIENDLY_NAME",null,setup); domain.ExecuteAssembly("YourMainApp.exe");