为什么在我的ASP.NET Core 1.0(MVC6)项目中看不到我的Core 1库?

时间:2016-08-19 08:23:13

标签: asp.net-core asp.net-core-mvc asp.net-core-1.0

我有一个小类库(Core 1),是独立的,以便其他应用程序也可以使用它,以及所有这些原因。它只有POCO模型类和DbContext衍生物。其项目文件如下:

{
    "version": "1.0.0-*",
    "dependencies": {
        "Microsoft.EntityFrameworkCore.SqlServer": "1.0.0",
        "NETStandard.Library": "1.5.0-rc2-24027",
        "System.ComponentModel.Annotations": "4.1.0"
    },
    "frameworks": {
        "netstandard1.5": {
            "imports": "dnxcore50"
        }
    }
}

然后我有一个 ASP.NET核心Web应用程序(.NET核心)我希望使用类库。几乎到处都是我看,我看过,说只是添加库到项目文件的主项目dependencies部分。它位于顶部:

"dependencies": {
    "WideWorld.Filing": "1.0.0.0",
    "Microsoft.NETCore.App": {
        "version": "1.0.0-rc2-3002702",
        "type": "platform"
    },
    "Microsoft.ApplicationInsights.AspNetCore": "1.0.0-rc2-final",

我甚至无法在主项目中看到库名称空间WideWorld.Filing,我可以在其中看到其命名空间WideWorld.Office。我对Core 1非常非常新,并且之前只构建了monolith web应用程序,所以如果我遗漏了一些明显的东西,请原谅我的无知。

如果我在主项目上执行包恢复,我会在日志中收到三个警告(以及其他看起来无害的东西):

warn : Detected package downgrade: Microsoft.EntityFrameworkCore.SqlServer from 1.0.0 to 1.0.0-rc2-final 
warn :  WideWorld.Office (>= 1.0.0) -> WideWorld.Filing (>= 1.0.0) -> Microsoft.EntityFrameworkCore.SqlServer (>= 1.0.0) 
warn :  WideWorld.Office (>= 1.0.0) -> Microsoft.EntityFrameworkCore.SqlServer (>= 1.0.0-rc2-final)

1 个答案:

答案 0 :(得分:3)

问题在于您正在混合软件包版本。例如,RTMRC2包不兼容。您应该将所有内容定位为RC2(我建议反对)或采用更首选的方法,并将所有包引用升级到RTM,定位版本1.0.0

更多详情here

注意,我省略了"import": "dnxcore50"

{
    "version": "1.0.0-*",
    "dependencies": {
        "Microsoft.EntityFrameworkCore.SqlServer": "1.0.0",
        "NETStandard.Library": "1.6.0",
        "System.ComponentModel.Annotations": "4.1.0"
    },
    "frameworks": {
        "netstandard1.5": { }
    }
}

同样,在另一个project.json执行此操作:

"dependencies": {
    "WideWorld.Filing": "1.0.0.0",
    "Microsoft.NETCore.App": {
        "version": "1.0.0",
        "type": "platform"
    },
    "Microsoft.ApplicationInsights.AspNetCore": "1.0.0"

packages的其他详细信息。