我正在使用引用EntityFrameworkCore 2.1.3包的数据库项目,但是AspNetCore.App-meta包包含EntityFrameworkCore 2.1.2。引入数据库项目后,我得到以下msbuild-warning:
Warning MSB3277 Found conflicts between different versions of "Microsoft.EntityFrameworkCore" that could not be resolved.
我在Google上搜索了一下,发现了这个文档:https://docs.microsoft.com/en-us/aspnet/core/fundamentals/metapackage-app?view=aspnetcore-2.1
我正在使用依赖于2.1.3的第三方库(适用于Postgre的NpgSql)... 我应该降级所有软件包,以便它们使用efcore 2.1.2软件包,还是应该忽略此警告?或更好的问题:哪种方式会减轻痛苦?
预先感谢
答案 0 :(得分:2)
确实,Npgsql.EntityFrameworkCore.PostgreSQL当前为2.1.2版,并且依赖于Microsoft.EntityFrameworkCore 2.1.2。但是,将较旧版本的Npgsql EF Core提供程序与较新的EF Core修补程序版本结合使用应该没有任何问题。
您可以通过直接依赖自己项目中的Microsoft.EntityFrameworkCore 2.1.3来摆脱此警告。
答案 1 :(得分:1)
在这种情况下,引用这些软件包的推荐方法是在您的Web项目中引用无版本的应用程序元软件包:
<PackageReference Include="Microsoft.AspNetCore.App" />
在图书馆项目中,您应该仅引用补丁级别为0的次要版本:
<PackageReference Include="Microsoft.EntityFrameworkCore" Version="2.1.0" />
引用该项目时,共享框架将自动使EF Core引用前滚到安装的.NET Core运行时的当前版本。
如果无法在该库项目中降级EF Core参考,则最佳解决方案可能是将.NET Core SDK /运行时升级到2.1.4,以便始终运行包含EF Core 2.1.3的最新版本。
答案 2 :(得分:0)
我的问题是相同的
“警告MSB3277发现无法解决的不同版本的“ Microsoft.AspNetCore.App”之间存在冲突。”
我已经在使用.net core sdk 2.2.204的计算机上开发了该项目。当我将项目从GIT复制到我的家用计算机时,出现此错误。当我尝试VS2017和VS2019时,什么都没有改变。实际的问题是SDK冲突。 SDK 2.2.104是VS2017的最后一个稳定版本。
当我将家用计算机升级到最新的当前版本(2.2.300)时,问题已解决
我希望这个解决方案对其他人也能起作用。我尝试了所有其他方法。