2011-04-26 192 views
16

有沒有辦法爲解決方案的所有項目有公共屬性文件?共同Settings.settings文件的整個解決方案

我有一個控制檯應用程序和一堆其他類librarry文件,我想只有一個設置文件給他們。

我不是在談論app.Config文件。我在說Settings.settings文件。

任何想法我可以做到這一點?

將配置設置存儲在設置文件而不是app.config中,這也是一種很好的做法嗎?

+0

我認爲這會毀了整個解決方案/項目的想法。您可以爲一個解決方案創建多個項目,以便在其他解決方案中輕鬆地複製部分代碼。項目不是組織解決方案的一種方式,因爲您最好使用項目中的文件夾。 – hyp 2011-04-26 16:02:07

+0

settings.settings文件中的內容將生成每個解決方案所特有的app.config文件的內容。除非您的類庫文件具有應用程序(而不是用戶)設置,否則您的設計將很快顯示出一些設計缺陷。如果您正在處理生成單個項目的多個解決方案,我強烈建議您避免使用配置文件。 – 2011-04-26 16:31:46

+0

我說過我有多個解決方案可以生成單個項目嗎?我想要做的就是在整個項目中使用常見的Settings.setting文件。就像我們有web.config或app.config。 – Asdfg 2011-04-26 16:52:29

回答

21

將您想要跨項目共享的文件放在解決方案文件夾中。然後,在每個項目中,選擇添加現有項目。

在Add Existing Item對話框中,選擇公共文件。點擊添加按鈕右側的下拉箭頭,然後從下拉菜單中選擇添加爲鏈接,而不是點擊添加按鈕。

Add As Link

如果這是一個設置文件,你需要設置自定義工具屬性文件:

file properties

如果你的文件是Settings.settings你可以打開你的項目屬性,轉到設置選項卡,Visual Studio會自動爲您設置此自定義工具屬性。

一旦設置了自定義工具,您將看到在您的設置文件下創建的Designer.cs文件。這個Designer.cs文件包含生成的代碼,以便以編程方式訪問您的設置。

Designer sub-file

正如你所看到的,Designer.cs文件也是一個鏈接文件,它的物理位置將與您的設置文件。

+2

但後來如果我嘗試訪問它們像Properties.Settings.Default.SettingName在類庫中,它不認識它。 – Asdfg 2011-04-26 18:25:59

+0

看到我的編輯.... – 2011-04-26 18:57:44

+0

如果這解決了你的問題(它應該)upvoting並接受我的答案將不勝感激,謝謝。 – 2011-04-26 19:01:53

8

或者,您可以將設置設置爲public而不是internal

轉到YourProject->屬性 - >設置

enter image description here

1

通過@qes上述接受的答案是正確的,但我有哪裏指定CustomToolNamespace派上了用場,因爲我已經有一些項目的情況具體設置。通過將Namespace設置爲特定的內容,我沒有得到與解決方案中每個項目相關的自動生成的名稱空間。