2013-05-15 137 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