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将文件复制到构建上的输出文件夹。这是通过右键单击解决方案资源管理器>属性中的文件,然后复制到输出目录=如果更新或复制总是复制。 –