.net 4.0 不同.net版本之间共享的单个共享代码库

.net 4.0 不同.net版本之间共享的单个共享代码库,.net-4.0,.net-2.0,versioning,.net 4.0,.net 2.0,Versioning,在深入研究之前,我环顾四周,看看是否有一个我将要问的问题的例子。但是假设我有一个指向.NET2.0框架的代码库,我仍然需要保留它,但是我还想创建一个指向4.0框架的项目的新版本 是否可以创建一个解决方案,有两个项目,一个用于.NET 2.0,另一个用于.NET 4.0。在这两个项目之间有一个“共享”的代码库,知道它们将是相同的吗 就像有一些cs、aspx和ascx文件,我知道无论我使用哪个版本,它们都是相同的。。我可以共享它,让项目使用这些共享文件,并将dll编译成我需要的版本控制吗 这样我就不

在深入研究之前,我环顾四周,看看是否有一个我将要问的问题的例子。但是假设我有一个指向.NET2.0框架的代码库,我仍然需要保留它,但是我还想创建一个指向4.0框架的项目的新版本

是否可以创建一个解决方案,有两个项目,一个用于.NET 2.0,另一个用于.NET 4.0。在这两个项目之间有一个“共享”的代码库,知道它们将是相同的吗

就像有一些cs、aspx和ascx文件,我知道无论我使用哪个版本,它们都是相同的。。我可以共享它,让项目使用这些共享文件,并将dll编译成我需要的版本控制吗

这样我就不必为两个版本的产品不断更新文件;或者请记住,如果将来出现这种情况,我必须这样做

使用新解决方案编辑

我决定用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();
    }
}

谢谢里德·科佩和乔恩·斯基特的帮助。如果您发现此解决方案也有任何问题,请告诉我。我想这正是我所需要的,我所要做的就是在“共享”项目的classA中更新_getInt的方法实现并编译它。

可能有两个项目,每个项目都包含相同的文件。在VisualStudio中将文件添加到项目时,有一个选项可用于,这将导致两个项目共享同一个源


这样做的好处是,您可以拥有特定于框架的代码(不包括两个项目中的所有文件),但可以根据需要共享代码。

可以有两个项目,每个项目都包含相同的文件。在VisualStudio中将文件添加到项目时,有一个选项可用于,这将导致两个项目共享同一个源


这样做的好处是,您可以拥有特定于框架的代码(不包括两个项目中的所有文件),但可以根据需要共享代码。

您确实需要将其作为两个独立的项目吗?在此之前,我使用了一个具有不同配置的项目,效果非常好。我认为单独的项目更安全。我的4.0应用程序使用了2.0中找不到的额外库。我不明白这有什么关系。假设现有的代码库不使用这些库,所以您只需要一个项目就可以拥有4.0和2.0版本。这感觉比试图将两个项目文件保持同步更安全。事实上,这就是问题所在。我当前的项目实际上使用了4.0,但我正在创建一个新的解决方案,使其与2.0向后兼容,因为我们使用的是一种只使用2.0的过时技术;这不支持当前的一些库。这听起来像是一个完全不同的问题。但是,即使您在一个版本中需要的引用与在不同版本中的引用不同,也可以通过单个项目和不同的配置来管理。我们为野田佳彦做了类似的事情,在野田佳彦,PCL版本是一个不同于“标准”版本的配置。你肯定需要它是两个独立的项目吗?在此之前,我使用了一个具有不同配置的项目,效果非常好。我认为单独的项目更安全。我的4.0应用程序使用了2.0中找不到的额外库。我不明白这有什么关系。假设现有的代码库不使用这些库,所以您只需要一个项目就可以拥有4.0和2.0版本。这感觉比试图将两个项目文件保持同步更安全。事实上,这就是问题所在。我当前的项目实际上使用了4.0,但我正在创建一个新的解决方案,使其与2.0向后兼容,因为我们使用的是一种只使用2.0的过时技术;这不支持当前的一些库。这听起来像是一个完全不同的问题。但是,即使您在一个版本中需要的引用与在不同版本中的引用不同,也可以通过单个项目和不同的配置来管理。我们为野田佳彦做了类似的事情,在野田佳彦,PCL版本与“标准”版本的配置不同。这确实意味着您需要记住每次都将文件添加到两个项目中——我怀疑重命名文件等可能会很痛苦。@JonSkeet是的,这肯定不是没有缺点;)我确实发现,试图添加一些类使用相关路径的文件时,这些文件并不存在。因此,在两个项目中,有些副本需要具有相同文件的副本:-/类似于引用包含js文件的脚本的aspx页面。我也选择了图书馆课的方式。我将用它来更新这个问题。这确实意味着您需要记住每次都要将文件添加到两个项目中-我怀疑重命名文件等可能会很痛苦。@JonSkeet是的,这肯定不是没有缺点;)我确实发现,试图添加一些类使用相关路径的文件时,这些文件并不存在。因此,在两个项目中,有些副本需要具有相同文件的副本:-/类似于引用包含js文件的脚本的aspx页面。我也选择了图书馆课的方式。我会用这个来更新这个问题。