我认为我从根本上在这里遗漏了一些东西而且我提前为愚蠢而道歉。试图拥抱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应用程序引用它。我按照this SO question中的信息创建了一个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 101课程来了解所有这些依赖关系是如何组合在一起的,但如果有人能够指出我正确的方向,我们将不胜感激。
答案 0 :(得分: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"
}
}
}
由于只有.NET Core(netstandardX.Y
)需要.NETStandard.Library
,因此它被列为仅该目标的依赖项,而不是一般依赖项。该项目很乐意为.NET 4.5构建,dotnet pack
生成可在两个平台上完美安装的库。