默认情况下,.NET 应用程序的配置文件以“exe 文件名”.config 命名。我想知道是否可以动态指定一个应用程序的配置。
例如,构建的应用程序是“foo.exe”。在运行时,配置文件是“foo.exe.config”。是否可以让它接受命令行参数以使用其他配置文件。因此,应用程序可以使用如下所示的其他配置。
foo.exe /config:bar.config
bar.config 代替 foo.exe.config 用作配置文件。
最佳答案
如果您只需要替换 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");
关于c# - 是否可以在运行时为 .NET 应用程序切换应用程序配置文件?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/242568/