2013-03-13 56 views
1

我看到很多的解决方案,从一个C#控制台应用程序外部配置文件中值一读,但我找不到我的特殊情况下的解决方案:使用ConfigurationManager中的自定义路径配置文件

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

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

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

回答

1

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

我认为,一个可能的解决方案是加载AppDomain作为控制台应用程序的一个孩子,正确地建立AppDomainSetup.ConfigurationFile财产加载从自定义位置配置文件,然后执行子AppDomain内整个控制台应用程序的逻辑。

您可以使用此AppDomain.CreateDomain过载这种情况下(MSDN文章包含有关如何提供样本代码AppDomainSetup):

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

相关问题