我有一个小类库(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)
答案 0 :(得分:3)
问题在于您正在混合软件包版本。例如,RTM
和RC2
包不兼容。您应该将所有内容定位为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的其他详细信息。