2012-04-04 60 views
1

我有一個vb.net項目,它有2個構建的exe以及安裝程序。這兩個exe共享一堆通用文件。我不想擁有兩個通用文件副本,或者混淆了構建複製事件的事件(如果可能)。帶有公共文件的VS2010項目

我的方法是在同一個文件夾中創建兩個項目,並讓它們指向他們需要的文件。這似乎工作,直到我試圖編譯這兩個應用程序,我在一個名爲Application.Designer.vb的文件中出現錯誤。看起來項目文件在他們的文件夾中創建了這個文件,當我在同一個文件夾中有兩個解決方案時它們發生衝突。

所以我的下一個努力是在它自己的文件夾中創建第二個項目,並根據需要添加項目。這裏的問題是VS2010沒有鏈接到不同文件夾中的文件,它將文件複製到新的項目文件夾。

什麼是vs2010的方法來完成這件事?

回答

3

當您創建第二個項目時,您幾乎就在那裏。您不需要將文件添加到第二個項目中,而需要鏈接它們。

當您添加它們時,VS會將源文件複製到當前項目的目錄中。

鏈接文件時,會將其保留在當前位置,並且只會將文件的引用添加到項目中。這意味着您正在使用單個源文件而不是多個副本。

要鏈接的文件時,請從Project菜單Add Existing Item...菜單項,選擇您要鏈接的文件(S),然後點擊旁邊的Add按鈕上的文件對話框的下拉箭頭,選擇Add As Link

我們在六個項目中共享此類文件,包括Win Forms,Silverlight,ASP.Net,Services和PocketPC。

+0

這正是我一直在尋找的。我不知道添加按鈕可以變成屏幕上的鏈接按鈕。我花了幾分鐘才讓一切正常工作。謝謝! – Hucker 2012-04-05 06:33:44

+0

文件夾怎麼樣?我的意思是我有很多像圖片一樣的共享資源 – maxisam 2012-08-22 15:29:55

+1

@maxisam:在這種情況下我通常會做的事情實際上是將所有資源添加到共享DLL中,然後在所有需要它的應用程序之間共享。 – 2012-08-22 16:01:07

3

最簡單的解決方案是將所有常見的東西都推送到一個通用項目中,並簡單地從其他兩個解決方案中引用該項目。

  • 溶液A:
    • 項目A
    • 項目C
  • 溶液B:
    • 項目B
    • 項目C

無論如何只是我的推薦。

+0

我想我不明白這可以幫助我,除非你說我應該建立通用文件到一個DLL項目,並將該DLL包括到每個項目中。我認爲這是可能的,但看起來很麻煩,看起來很簡單......將文件放在不同的文件夾中。如果這是最好的解決方案,那麼我需要重新思考我在做什麼。謝謝! – Hucker 2012-04-04 00:48:34

+0

@Hucker - 基本上是。你可以在技術上通過使它們「鏈接」文件共享文件,但這也可能是混亂的。在我看來,一旦你開始擁有不止一對**共享**資源,你需要一個DLL項目。它不一定是混亂的...特別是如果這意味着你的工作量比你現在做的要少;) – Josh 2012-04-04 01:10:39