5

我想從名爲secrets.config的外部配置文件中讀取我的控制檯應用程序的appSettings的一部分,而其餘部分我希望從app.config從外部配置文件中讀取appSettings的一部分

目前,我有這個設置,但它似乎不是從secrets.config讀取,它甚至沒有告訴我有關讀取失敗。

以我的app.config

<appSettings file = "secrets.config"> 
    <add key = "Foo" value = "Bar" /> 
</appSettings> 

在secrets.config,這是在同一文件夾中的app.config

<appSettings> 
    <add key = "Secret" value = "Tiger" /> 
</appSettings> 

在我的代碼

var secret = ConfigurationManager.AppSettings["Secret"]; 

// secret turns out to be null 
+0

的可能的複製[ConfigurationManager.AppSettings使用其他配置文件(http://stackoverflow.com/questions/16425407/configurationmanager-appsettings -use-another-config-file) –

+1

恩,對不起,剛纔意識到你已經採取了Q.答案中詳述的方法之一。 –

回答

2

事實證明,我正在將外部文件的路徑寫爲錯誤的路徑。

從文檔on this page

指定的路徑是相對於主配置文件。對於Windows Forms應用程序,這將是二進制文件夾(如/ bin/debug),而不是應用程序配置文件的位置。對於Web窗體應用程序,路徑相對於web.config文件所在的應用程序根目錄。

我改變了路徑,它下面的工作:

<appSettings file = "..\..\secrets.config"> 
</appSettings> 
+1

同樣的事情爲我工作。如果app.SECRETS.config與app.config相鄰。即''appSettings file =「.. \ .. \ App.SECRETS.config」>' –

+0

晚會有點晚,但您可以通過指示Visual Studio將文件複製到構建上的輸出文件夾。這是通過右鍵單擊解決方案資源管理器>屬性中的文件,然後複製到輸出目錄=如果更新或複製總是複製。 –