多项目定位项目以启用.net的4.5和5版本

时间:2015-01-29 18:35:49

标签: asp.net .net asp.net-4.5 visual-studio-2015 asp.net-core

我正在尝试使用VS2015来创建某种统一的开发框架。

整个意识形态是将代码统一到一个针对.net 4.5,aspnet50和aspnet50core的项目中(尽可能)。

其中一个基接口应定义:

  • .NET 4.5的System.Data.IDbConnection
  • AspNet 5的System.Data.Common.DbConnection

如下:

public interface
{
#if ASPNET50
    System.Data.Common.DbConnection GetConnection();
#endif

#if NET45
    System.Data.IDbConnection GetConnection();
#endif
}

我已将project.json更新为:

"frameworks": {
    "net45": {
        "dependencies": {
        }
    }
    "aspnet50": {
        "dependencies": {
            "System.Data.SqlClient": "1.0.0-beta2"
        }
    }
}

我唯一的选择就是将System.Data.Common引用到.net 4.5 dependencies(但由于它不是为支持.net 4.5而构建的,因此无效)。

如果我尝试引用"System.Data": "4.0.0.0"或甚至没有版本号,VS2015无法解析为gac而无法识别引用。

有什么希望吗?

1 个答案:

答案 0 :(得分:1)

通常你会看到如下设置:

  • [解决]
    • [PROJECT1]
      • [属性]
      • Project1.NET45.csproj
      • Project1.ASPNET5.csproj
      • 的Class1.cs

在每个项目中,您可以定义一个符号(例如ASPNET5NET45)。然后每个都将引用对该构建重要的程序集。此外,您可以在两个项目中包含公共文件(在这些文件中使用每个项目中的符号来区分代码),但您也可以打破特定于版本的功能的实现(例如,仅包含Class1.NET45.cs)在NET45项目中)