2013-05-15 139 views
1

我環顧四周,看看在我開始深入研究之前是否有一個我要問的問題的例子。但是假設我有一個指向.NET 2.0框架的代碼庫,我仍然需要保留它,但我也想創建一個指向4.0框架的新版本的項目。在不同.net版本之間共享的單個共享代碼庫

是否有可能創建一個解決方案,有兩個項目,一個用於.NET 2.0,另一個用於.NET 4.0。兩者之間有一個「共享」代碼庫,知道它們對於這兩個項目是相同的?

就像我知道的幾個cs,aspx和ascx文件將是相同的,無論我使用什麼版本..我可以共享並讓項目使用這些共享文件並編譯dll到版本我需要嗎?

這樣我就不必爲兩個版本的產品更新文件了;或者記住,如果將來有這樣的話,我將不得不這樣做。

有新的解決方案EDITTING

我決定把該解決方案具有3個項目。 Project-NET.2.0 Project-NET.4.0 項目共享

共享項目將擁有具有方法簽名和實現的庫類。其他兩個項目將採用該DLL參考,然後我將創建一個使用該共享庫的新類並對其進行相應的調用。

所以共享有一個類:

class A { 
    public int _getInt(){ 
     return 12345; 
    } 
} 

項目,NET.4.0

Using Project-Shared; 

public class NewClassA : WebService { 
    ClassA a = new ClassA();  

    [WebMethod] 
    public int getInt(){ 
     return a._getInt(); 
    } 
} 

謝謝里德·科普塞和喬恩斯基特的幫助。讓我也知道,如果你也看到這個解決方案的任何問題。我認爲這正是我所需要的,我所要做的就是更新「shared」項目的classA中_getInt的方法實現並編譯它。

+0

你確實需要它是兩個單獨的項目嗎?在此之前,我已經使用了一個具有不同配置的項目 - 效果很好。 –

+0

我認爲分開項目更安全。我的4.0應用程序使用2.0中找不到的額外庫。 – sksallaj

+0

我不明白爲什麼這是相關的。 *現有的代碼庫*可能不會使用這些庫,因此您只需要一個項目即可擁有4.0和2.0版本。這比嘗試將兩個項目文件保持爲鎖步感覺更安全。 –

回答

1

可能有兩個項目,每個項目都包含相同的文件。將文件添加到項目時,在Visual Studio中,有一個選項add the item as a link,這會導致兩個項目共享相同的源。

這可能是有利的,因爲您可以具有特定於框架的代碼(不包括兩個項目中的所有文件),但根據需要共享代碼。

+0

這意味着你需要記住每次都將文件添加到兩個項目 - 而且我懷疑重命名文件等可能是痛苦的。 –

+0

@JonSkeet是的,這不是沒有缺點,當然;) –

+0

好吧,我確實發現,嘗試添加文件,其中一些類使用相關路徑,文件不在那裏。因此,您需要在兩個項目中擁有相同文件副本的一些副本: - 像指向包含js文件的腳本的aspx頁面。我也選擇採用圖書館課程的方式。相反,我會更新這個問題。 – sksallaj