Что делать, если в приложении asp net core возникает MSB3277 - PullRequest
0 голосов
/ 25 сентября 2018

Я использую Database-Project, ссылающийся на пакет EntityFrameworkCore 2.1.3, но AspNetCore.App-metapackage содержит EntityFrameworkCore 2.1.2.После внесения в мой Database-Project я получаю это msbuild-предупреждение:

Warning MSB3277 Found conflicts between different versions of "Microsoft.EntityFrameworkCore" that could not be resolved.

Я немного погуглил и нашел этот документ: https://docs.microsoft.com/en-us/aspnet/core/fundamentals/metapackage-app?view=aspnetcore-2.1

Я используюсторонняя библиотека (NpgSql для Postgre), которая опирается на 2.1.3 ... Должен ли я понижать версию всех пакетов, чтобы они использовали пакет efcore 2.1.2, или я должен игнорировать это предупреждение?Или лучше вопрос: какой путь менее болезненный?

Заранее спасибо

Ответы [ 3 ]

0 голосов
/ 25 сентября 2018

Это правда, что Npgsql.EntityFrameworkCore.PostgreSQL в настоящее время имеет версию 2.1.2 и зависит от Microsoft.EntityFrameworkCore 2.1.2.Однако не должно быть никаких проблем с использованием более старой версии поставщика Npgsql EF Core с более новыми версиями исправлений самого EF Core.

Вероятно, вы можете избавиться от этого предупреждения, приняв прямую зависимость от Microsoft.EntityFrameworkCore 2.1.3 в вашем собственном проекте.

0 голосов
/ 22 мая 2019

Моя проблема была такой же

"Предупреждение MSB3277 Обнаружены конфликты между различными версиями" Microsoft.AspNetCore.App ", которые не удалось разрешить."

Я разработал проект накомпьютер с .net core sdk 2.2.204.Я получил эту ошибку, когда скопировал проект из GIT на мой домашний компьютер.Когда я пробую VS2017 и VS2019, ничего не изменилось.Актуальной проблемой был конфликт SDK.SDK 2.2.104 - последняя стабильная версия для VS2017.

Проблема была решена, когда я обновил свой домашний компьютер до последней текущей версии (2.2.300)

Я надеюсь, что это решение хорошо работает для других.Я перепробовал все остальные методы.

0 голосов
/ 25 сентября 2018

Рекомендуемый способ ссылаться на эти пакеты в таких ситуациях - ссылаться на метапакет приложения без версии в вашем веб-проекте:

<PackageReference Include="Microsoft.AspNetCore.App" />

А в проектах библиотеки вы должны ссылаться только на младшую версию суровень исправления 0:

<PackageReference Include="Microsoft.EntityFrameworkCore" Version="2.1.0" />

При ссылке на этот проект общая инфраструктура автоматически переводит ссылку EF Core на текущую версию установленной среды выполнения .NET Core.

Есливы не можете понизить версию EF Core в этом библиотечном проекте. Лучшим решением, вероятно, было бы обновить ваш .NET Core SDK / runtime до 2.1.4, чтобы в любом случае запустить последнюю версию, содержащую EF Core 2.1.3.

...