2013-03-13 60 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

相關問題