и т. д.) выполняется внутри другого проекта, который не имеет стандартных строительных лесов, поэтому я пытался найти способ для этого. Предложенное @DmitryPavlov решение работает.
я есть решение со многими проектами. Один из них (Domain
) .NET Standard 2.0 проект, в котором я сделал EF CoreDbContext
реализация, для которой я хочу включитьмиграция базы данных.
Я видел различные блоги и форумы вопросов и ответов, на которых объяснялась проблема, но ни одно из предложенных решений, похоже, не работает для меня из-за более новой версии .NET Core или (вероятно) для моей конкретной конфигурации решения.
Проекты решений
Engine (консольное приложение .NET Core 2.1)Веб-API (библиотека .NET Core 2.1)Приложение (библиотека .NET Core 2.1)Домен (библиотека .NET Standard 2.0)WindowsService (консольное приложение .NET Core 2.1)WindowsService
это проект запуска, где экземплярEngine
создается и инкапсулируется для запуска в качестве службы Windows или консольного приложения (для отладки).
Engine
является реальным основным приложением, где экземплярKestrel
Веб-сервер с собственным хостом настроен как веб-API и создан. Также создаются и сохраняются другие компоненты (прослушиватель UDP, сторожевой таймер компьютера и т. Д.).
WebAPI
имеетStartup
класс но нетProgram
класс, так как все настройки и запуск веб-сервера выполняются внутриEngine.Program.cs
класс.
зависимости
WindowsService => EngineEngine => WebAPIWebAPI => Приложение, ДоменПриложение => ДоменПервая попытка была просто запуститьadd-migration Initial
из PMC сDomain
проект как цель, но он превращается в:
Невозможно создать объект типа «MyDbContext». Добавьте реализацию IDesignTimeDbContextFactory в проект или посмотритеhttps://go.microsoft.com/fwlink/?linkid=851728 для дополнительных шаблонов, поддерживаемых во время разработки.
Затем я последовал предложенному решению наэто вопрос, но:
add-migration Initial
из PMC, после настройки MyWebAPI
(безProgram
класс) как стартовый проект, превращается в:
Не удалось найти совместимую версию фреймворка. Указанный фреймворк «Microsoft.NETCore.App», версия «2.1.0» не найден.
Проверьте зависимости приложения и укажите версию платформы, установленную по адресу: C: \ Program Files \ dotnet \ Установка обязательных компонентов .NET Core может помочь решить эту проблему:http://go.microsoft.com/fwlink/?LinkID=798306&clcid=0x409Платформа .NET Core и SDK могут быть установлены из:https://aka.ms/dotnet-downloadУстановлены следующие версии: 2.0.5 в [C: \ Program Files \ dotnet \ shared \ Microsoft.NETCore.App] 2.0.6 в [C: \ Program Files \ dotnet \ shared \ Microsoft.NETCore.App] 2.0. 7 в [C: \ Program Files \ dotnet \ shared \ Microsoft.NETCore.App] 2.0.9 в [C: \ Program Files \ dotnet \ shared \ Microsoft.NETCore.App] 2.1.2 в [C: \ Program Files \ DotNet \ Shared \ Microsoft.NETCore.App] из PMC, после добавления дополнительной целевой структуры (add-migration Initial
) к файлу проекта библиотеки домена, приводит меня к той же ошибке, что и с 1-й попытки.netcoreapp2.1
из PMC, после добавления ссылки на
add-migration Initial
всегда приводит к той же ошибке, что и 1-я попытка.Microsoft.EntityFrameworkCore.SqlServer.Design v1.1.6
Что я должен делать?
ОБНОВИТЬ
Это новый
файл после удаления ненужных ссылок на библиотеки.Domain.csproj
Все библиотеки во всех проектах актуальны.
<ItemGroup>
<PackageReference Include="Microsoft.EntityFrameworkCore" Version="2.1.1" />
<PackageReference Include="Microsoft.EntityFrameworkCore.SqlServer" Version="2.1.1" />
<PackageReference Include="Microsoft.EntityFrameworkCore.Tools" Version="2.1.1" />
<PackageReference Include="Newtonsoft.Json" Version="11.0.2" />
</ItemGroup>
Ваша проблема использует