我在C#控制台应用程序中看到了从外部配置文件读取值的许多解决方案,但我无法找到适合我特定情况的解决方案:
由于部署的原因(主要是因为这是针对使用Visual Studio Web Publish方法作为MVC网站的一部分进行部署的控制台应用程序),因此exe不会与其应用程序打包在一起。配置文件。
我依赖于使用ConfigurationManager.AppConfig [“blah”]语法的库,我不能很好地将自己的AppSettingsSection传递给这些库。
我的控制台应用程序的.exe文件位于MVC应用程序的bin目录中。由于网站和控制台应用程序使用相同的配置值,我试图简单地将网站的Web.config文件加载到控制台应用程序中,但我还没有找到这样做的方法。
答案 0 :(得分:1)
加载AppDomain
后加载默认配置文件。对于控制台应用程序,配置文件必须与可执行文件位于同一位置。
我相信一种可能的解决方案是将AppDomain
作为控制台应用程序的子项加载并正确设置AppDomainSetup.ConfigurationFile属性以从自定义位置加载配置文件,然后执行整个控制台应用程序在子AppDomain
内的逻辑。
对于这种情况,您可以使用此AppDomain.CreateDomain
重载(MSDN文章包含有关如何提供AppDomainSetup
的示例代码):
据我所知,您无法更改的默认行为,其中可执行文件AppDomain
在加载后查找配置文件,但正如我建议的那样,您可以根据自己的要求创建自己的AppDomain
!