在ASP.NET 4.6 MVC应用程序中引用.NET Core类库

jca*_*ddy 3 .net asp.net .net-core asp.net-core .net-core-rc2

我认为我在这里缺少一些东西,我提前为愚蠢道歉.试图拥抱dotnet核心的新世界,并将项目作为一种尝试学习的方式.

我已经编写了一些身份验证中间件来使用ASP.NET Core Identity.我使用.NET核类库作为中间件 - 优点是我相信我可以针对任何框架以及构建我的组件的Nuget包.当与基于VS2015 RC2模板的.NET Core的ASP.NET Core Web应用程序一起使用时,中间件可以正常工作.

我喜欢冒险,我决定创建一个基于OWIN/Katana认证中间件的组件版本,这样我就可以在ASP.NET 4.5/6 Web应用程序中使用它.我没有创建传统的类库项目,而是再次使用.NET Core Class Library模板,但仅针对.NET 4.6,即net46.它编译得很好,但我无法让我的ASP.NET 4.6应用程序引用它.我按照这个SO问题中的信息来创建一个NuGet包,创建一个本地源,然后尝试将它添加到我的ASP.NET 4.6项目,但它失败并出现错误:

无法解析依赖关系'NETStandard.Library'.使用的来源:'nuget.org','AspNetRc2Source','MyGet','本地','Microsoft和.NET','Microsoft Visual Studio离线包'.0

我的头脑旋转着依赖和框架.

无论如何,这里是我的.NET Core类库中的project.json文件 - 你可以看到它只针对.NET 4.6,这也是我的ASP.NET应用程序的目标.

.NET核心库 - 中间件组件

我觉得我需要一些严肃的.NET 101课程来了解所有这些依赖关系如何组合在一起,但如果有人能够指出我正确的方向,我将不胜感激.

Nat*_*ini 7

删除引用NETStandard.Library,它应该工作.如果您只针对.NET 4.5+,则不需要这样做.

我在一个可以从.NET 4.5+和.NET Core中使用的OWIN中间件库上工作.我使用project.json如下所示的目标:

"dependencies": {
  "Stormpath.Owin.Abstractions": {
    "target": "project",
    "version": "1.0.0"
  }
},
"frameworks": {
  "net45": {
    "frameworkAssemblies": {
      "System.Collections": "4.0.0.0"
    }
  },
  "netstandard1.3": {
    "dependencies": {
      "NETStandard.Library": "1.5.0-rc2-24027"
    }
  }
}
Run Code Online (Sandbox Code Playgroud)

由于只有.NET Core(netstandardX.Y)需要.NETStandard.Library,因此它作为该目标的依赖项列出,而不是作为一般依赖项.该项目将很乐意为.NET 4.5构建,并dotnet pack生成可在两个平台上完美安装的库.