使用ConfigurationManager和配置文件的自定义路径

时间:2013-03-13 15:43:05

标签: c# .net visual-studio-2010 .net-4.0 configuration-files

我在C#控制台应用程序中看到了从外部配置文件读取值的许多解决方案,但我无法找到适合我特定情况的解决方案:

  1. 由于部署的原因(主要是因为这是针对使用Visual Studio Web Publish方法作为MVC网站的一部分进行部署的控制台应用程序),因此exe不会与其应用程序打包在一起。配置文件。

  2. 我依赖于使用ConfigurationManager.AppConfig [“blah”]语法的库,我不能很好地将自己的AppSettingsSection传递给这些库。

  3. 我的控制台应用程序的.exe文件位于MVC应用程序的bin目录中。由于网站和控制台应用程序使用相同的配置值,我试图简单地将网站的Web.config文件加载到控制台应用程序中,但我还没有找到这样做的方法。

1 个答案:

答案 0 :(得分:1)

加载AppDomain后加载默认配置文件。对于控制台应用程序,配置文件必须与可执行文件位于同一位置。

我相信一种可能的解决方案是将AppDomain作为控制台应用程序的子项加载并正确设置AppDomainSetup.ConfigurationFile属性以从自定义位置加载配置文件,然后执行整个控制台应用程序在子AppDomain内的逻辑。

对于这种情况,您可以使用此AppDomain.CreateDomain重载(MSDN文章包含有关如何提供AppDomainSetup的示例代码):

据我所知,您无法更改的默认行为,其中可执行文件AppDomain在加载后查找配置文件,但正如我建议的那样,您可以根据自己的要求创建自己的AppDomain