是否可以将整个App.Config文件重定位到自定义路径?
配置文件与exe驻留在同一文件夹中似乎有点奇怪,Windows的新方法是将所有程序设置保存在c:\ ProgramData和所有程序中。
我们还有一个附加要求,就是以编程方式指定在哪里可以找到app.config文件。原因是我们从相同的exe生成了不同的服务实例,并且希望将每个服务的app.config存储在该服务的settings文件夹下的c:\ ProgramData \\下。
每个AppDomain都有/可以有自己的配置文件。CLR主机创建的默认AppDomain使用programname.exe.config。如果要提供自己的配置文件,请创建单独的AppDomain。例:
// get the name of the assembly string exeAssembly = Assembly.GetEntryAssembly().FullName; // setup - there you put the path to the config file AppDomainSetup setup = new AppDomainSetup(); setup.ApplicationBase = System.Environment.CurrentDirectory; setup.ConfigurationFile = "<path to your config file>"; // create the app domain AppDomain appDomain = AppDomain.CreateDomain("My AppDomain", null, setup); // create proxy used to call the startup method YourStartupClass proxy = (YourStartupClass)appDomain.CreateInstanceAndUnwrap( exeAssembly, typeof(YourStartupClass).FullName); // call the startup method - something like alternative main() proxy.StartupMethod(); // in the end, unload the domain AppDomain.Unload(appDomain);
希望能有所帮助。