使用ConfigurationManager中的自定义路径配置文件
问题描述:
我看到很多的解决方案,从一个C#控制台应用程序外部配置文件中值一读,但我找不到我的特殊情况下的解决方案:使用ConfigurationManager中的自定义路径配置文件
由于部署的原因(主要是因为这是针对使用Visual Studio Web Publish方法作为MVC网站一部分进行部署的控制台应用程序),因此该exe不会与其app.config文件一起打包。
我依赖于使用ConfigurationManager.AppConfig [“blah”]语法的库,并且我不能很好地将我自己的AppSettingsSection传递到这些库。
我的控制台应用程序的.exe文件位于MVC应用程序的bin目录中。由于网站和控制台应用程序都使用相同的配置值,我只是试图将网站的Web.config文件加载到控制台应用程序中,但我还没有找到这样做的方法。
答
加载AppDomain
后,加载默认配置文件。对于控制台应用程序,配置文件必须与可执行文件位于同一位置。
我认为,一个可能的解决方案是加载AppDomain
作为控制台应用程序的一个孩子,正确地建立AppDomainSetup.ConfigurationFile财产加载从自定义位置配置文件,然后执行子AppDomain
内整个控制台应用程序的逻辑。
您可以使用此AppDomain.CreateDomain
过载这种情况下(MSDN文章包含有关如何提供样本代码AppDomainSetup
):
据我所知,你可以不会改变的默认行为,其中可执行文件AppDomain
在加载后查找配置文件,但正如我建议的那样,您可以根据自己的要求创建自己的AppDomain
!