2013-12-09 127 views
6

我正在用C#/ .NET編寫一個類庫。如何在一個項目中包含一個項目的源文件?

我需要編譯它有兩個不同的框架:

  • 4.0(使用調試自己)
  • 3.5(使用客戶端)。

我想爲這兩個項目設置一個源文件,這樣我就可以在1個文件副本中進行更正,並且它們會自動包含在另一個項目中。現在

,如果我甚至用「添加現有項目」,相較於2010年創建的副本;我需要每次都複製最新版本。

我不能只是改變目標項目,因爲我使用不同版本的.dll引用,因爲ms和有一些怪癖。

回答

6

一種選擇是使用添加鏈接被其他已經提到的選擇,但你必須比更多的選擇:

  1. Portable Class Libraries是一種特殊類型的項目,允許你可以指定你想要定位的.NET版本。編譯器然後爲您輸出相應的程序集。這種技術的優點是你有一個編譯到兩個框架的源代碼版本。缺點是不能使用最低公分母.NET框架不支持的功能。
  2. 源代碼控制分支&合併讓你真正保持2個類似,但不同的源文件。您有一個版本是主版本,然後在對其進行更改後,將其合併到產生實際輸出的項目中。這種技術的優點是你可以有兩個完全獨立的文件,所以你有很大的自由。缺點是你有兩個完全分開的文件,這很難管理。
  3. 做更好MsBuild欺騙。使用<choose>/<when>構造,您可以根據條件有條件地包含對特定裝配版本的引用。目標框架版本和其他奇特設置也可以通過MsBuild進行管理,但您無法始終通過UI編輯這些設置。您可以將其與#if MY_CONSTANT結合使用以創建應用程序的有條件編譯部分
  4. 您可以創建一個從兩個項目中引用的.NET程序集。您將.NET版本設置爲最低版本,在您的情況下爲3.5。 Visual Studio 2010及更高版本具有多重定位支持,您可以在一個解決方案中混合使用.NET框架版本。

如果你分享(部分)你的項目文件,我們可能會爲你解決這些問題。

5

可以使用Add as Link功能。

它是這樣的:

  • 右鍵單擊你需要你的(現有的)文件是
  • 「添加」 - >「現有項」
  • 選擇您的文件,然後單擊箭頭「添加」按鈕,然後選擇「添加鏈接」(參見下圖)
  • 該文件的鏈接將被添加到項目而不是複製

Screenshot

3

當添加文件到項目中選擇「添加爲鏈接」不只是添加。

Add as link

相關問題