8

手動同步保持多個Visual Studio項目的屬性令人討厭。那麼,你怎麼能在多個項目之間共享屬性呢?如何在多個Visual Studio項目之間共享屬性? (特別是C#項目)

編輯:我指的是像條件編譯符號,處理警告和錯誤等屬性,即可以在Project-> Properties選項卡中配置的東西,或者通過編輯項目XML文件。

以前也有類似問題,請參閱:1,23。然而,根據我的理解,答案是C++特有的。我正在尋找C#項目的答案。儘管如此,如果你保持分離的清晰,不要猶豫,回答其他類型的項目(Visual Basic等),因爲別人可能對我感興趣。

This blog post提出了一個解決這個問題的方法,但我更喜歡簡單的東西。

而且,你至少可以解決以下方式(注意,雖然我測試了它,我沒有測試它徹底)問題的一部分:

創建與裝配屬性的AssemblyInfo.cs文件你打算分享。鏈接到單個項目中的現有項目。使用原始(本地)AssemblyInfo.cs並將項目特定的程序集屬性放在那裏。不幸的是,重寫屬性似乎不起作用,並且通過GUI管理屬性現在受到限制。

+2

現在是2014年。這仍然不可能嗎? – David 2014-03-04 15:04:51

回答

4

對於這樣的事情,我更喜歡有一個單獨的類庫項目,其中一個(或多個)靜態類存儲(靜態)屬性。然後從每個需要同步這些屬性的項目中添加對該項目的引用,並且所有這些項目將具有相同的值,並且只能在一個位置更改它。

例如,假設我在Web和桌面表單中具有相同的應用程序。像連接字符串和類似的東西都必須相同。所以,我將創建三個項目:
MyProject.Web(Web應用程序)
MyProject.Desktop(Windows窗體應用程序)
MyProject.Common(類庫)
然後我中常見的添加一個新的靜態類調用一個屬性稱爲ConnectionString的靜態屬性,它返回連接字符串。
然後,我添加了對Web和桌面中Common的引用,並且當我想從其中任何一個訪問連接字符串時,我使用Common.Properties.ConnectionString。

+1

謝謝。但是,我說到屬性時的意圖是指構建配置而不是運行時配置。即,你可以在Project-> Properties-> Application,Project-> Properties-> Build等中配置的東西。 – 2010-09-11 14:37:12

+0

我明白了。恐怕我不能提出比你自己發佈的更好的東西。對不起,我無法幫助。 – Yandros 2010-09-12 08:13:26

1

我們非常大量地使用.vsprops文件來在我們的本地項目之間定義共享宏。

有人問完全相同的問題,因爲你提出了向解決方案添加一個「空白」視覺C++項目的想法,這樣可以導入vsprops文件和屬性通常可以在解決方案的其餘部分看到。如果這聽起來不夠嚴重,我可以看看它是如何實現的。

相關問題