我有一个小类库(核心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 Core),我希望使用类库.几乎无处不在,我看,只是将库添加到其主项目的依赖项部分项目文件.它就在顶部:
"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)
解决方法
问题是你正在混合软件包版本.例如,RTM和RC2包不兼容.您应该将所有内容定位为RC2(我建议反对)或采用更首选的方法并将所有包引用升级到RTM,目标版本为1.0.0.
更多细节here:
注意,我省略了“import”:“dnxcore50”
{ "version": "1.0.0-*","NETStandard.Library": "1.6.0","frameworks": { "netstandard1.5": { } } }
同样,在另一个project.json中这样做:
"dependencies": { "WideWorld.Filing": "1.0.0.0","Microsoft.NETCore.App": { "version": "1.0.0","Microsoft.ApplicationInsights.AspNetCore": "1.0.0"
有关packages的其他详细信息.