2014-04-09 58 views
3

我在同一個解決方案中有一系列MVC項目(20+)。其中一些需要爲大量應用設置共享相同的值。外部AppSettings文件不適用於鏈接文件

我想將這些文件保存在相關項目的父目錄的一個常用位置(比如「appSettings.config」)以方便維護,通過appSettings標籤上的文件屬性將文件帶入web.config 。

要將文件引入到每個項目中,我可以使用Add > Existing Item...,這一切都有效,但如果我在添加現有項目時選擇Add As Link,則不會。沒有選擇添加爲鏈接,該文件僅僅是複製,並且2個文件之間的值不保持同步,從而破壞了我的目的。

有沒有辦法讓這個工作與鏈接的appSettings.config文件?

回答

5

如您所說,在web.config中,您可以指定appSettings部分的內容來自單獨的文件。使用它來導入共享設置。像這樣:

<appSettings file="..\..\config\appSettings.config" /> 

您指定的文件路徑是相對於web.config的位置。如上所示,您可以簡單地使用.. \ notation來引用web根目錄之外的路徑。這意味着您可以在任何方便的地方維護共享配置文件。

查看http://msdn.microsoft.com/en-us/library/aa903313(v=vs.71).aspx瞭解更多詳情。

+0

當我嘗試這個,我得到一個運行時錯誤:'解析器錯誤信息:根元素丟失.'和Resharper拋出警告:「路徑是在網站之外」我已經明確指定路徑正確的是 - 當我指定一個不正確的路徑時,Resharper會向我發出一個令人生氣的*路徑未找到的消息。 – Faust

+0

我測試過了,它可以工作(儘管Resharper警告)。使外部文件的內容具有正確的格式;特別是根元素是''而不是''(詳情參見上面的Microsoft鏈接)。 –

0

爲了將應用程序設置集中在一個文件中並讓許多項目使用這些鍵值對,只需將名爲appSettings.config的新文件添加到解決方案/存儲庫的根目錄,然後更新所有web.config文件以引用相對於web.config項目根目錄的新位置。 例子,對於一個項目的web配置可能會更新爲:

<appSettings file="../appSettings.config" /> 

然而,第二個項目可能需要有webconfig更新爲:

<appSettings file="../../../appSettings.config" /> 

這一切都取決於的位置文件相對於項目的位置。在上面的情況中,有兩個項目在一個解決方案中。您可以使用一個appSettings.config文件將X數量的項目做好。

請參閱下面的Microsoft鏈接。 https://msdn.microsoft.com/en-us/library/aa903313(v=vs.71).aspx

相關問題