如果推荐人引用.Net 4.5,为什么我不能从另一个.Net核心项目访问该项目?

如果推荐人引用.Net 4.5,为什么我不能从另一个.Net核心项目访问该项目?,.net,.net,我在VS 2015中创建了两个项目。它们都创建为类库(包),生成.Net核心程序集。在其中一个项目中,我删除了对.NET4.5.1的引用,因此它将是严格意义上的核心。在另一个项目中,我添加了一个对仅核心项目的引用,只是为了得到这个编译时错误 项目TestWindowsProject中的依赖项TestCoreProject 1.0.0不支持framework.NETFramework,版本=v4.5.1 为什么这会成为一个问题?如果我试图从核心项目中引用.Net项目,那应该不会起作用,但是.Net

我在VS 2015中创建了两个项目。它们都创建为类库(包),生成.Net核心程序集。在其中一个项目中,我删除了对.NET4.5.1的引用,因此它将是严格意义上的核心。在另一个项目中,我添加了一个对仅核心项目的引用,只是为了得到这个编译时错误

项目TestWindowsProject中的依赖项TestCoreProject 1.0.0不支持framework.NETFramework,版本=v4.5.1


为什么这会成为一个问题?如果我试图从核心项目中引用.Net项目,那应该不会起作用,但是.Net项目不应该在引用核心项目时犹豫不决。

我想我已经找到了答案,但是VS没有帮助。当VS添加项目引用时,它会添加到project.json中的主要依赖项中。我真正想要的是,在编译Core时只引用Core库。我可以通过手动将reference向上移动到dotnet5.4部分来实现这一点

  "frameworks": {
    "net451": { },
    "dotnet5.4": {
      "dependencies": {
        "Microsoft.CSharp": "4.0.1-beta-23516",
        "System.Collections": "4.0.11-beta-23516",
        "System.Linq": "4.0.1-beta-23516",
        "System.Runtime": "4.0.21-beta-23516",
        "System.Threading": "4.0.11-beta-23516",
        "TestCoreProject": "1.0.0-*"
      }
    }
  },
  "dependencies": {

  }

从这里,我可以在代码中使用预处理器指令。最终,在通过反复试验了解了所有这些之后,我认为我真正想要的是在我的所有库中引用这两个框架。

在项目属性中,TestCoreProject的目标框架是什么?
类库(包)
不是核心,而是打包为NuGet包的常规类库。删除对.NET 4.5.1程序集的引用(到底是哪些程序集?)也不会使其成为核心。Core是一个完全不同的框架,具有不同的体系结构和类型系统。您不能将两者混合使用,因为没有目标框架,因为这不是传统的.Net项目。当您使用类库(包)选项创建项目时,您不会获得与完整.Net应用程序相同的项目属性。这类项目有一个project.json,它将dotnet5.4列为其唯一的框架?该选项与VS 2015的最新更新一起添加。该项目有一个project.json,而不是传统的基于xml的proj文件。我只能引用使用类库(包)类似地创建的其他项目。我完全无法向使用旧类库项目模板创建的项目添加引用。有什么地方可以让我更好地理解dnxcore50和dotnet5.4之间的区别吗?