Настройка EF Core в отдельном проекте от основного ASP. Net В базовом проекте происходит сбой Add-Migration с ошибкой The specified deps.json [C:\[solution]\[startupproject]\[startupproject].deps.json] does not exist
.
Примечание: я подставил root папка с [Solution], запускаемый проект с [startupproject] и далее вниз проект базы данных с [databaseproject].
Короче, у меня есть 3 проекта, настроенных как описано здесь :
- ASP. Net Core web api, это стартовый проект (
[startpproject]
) - База данных Entity Framework Core, содержит DbContext (
[databaseproject]
) - Общий проект для моделей (
[modelsproject]
)
Поскольку dbcontext находится в другом проекте, чем проект запуска, мне нужно добавить параметры -StartupProject
и -Project
в Add-Migration
и Update-Database
.
Add-Migration "Initial" -StartupProject MyWebApiProject -Project MyDatabaseProject
Update-Database -StartupProject MyWebApiProject -Project MyDatabaseProject
Add-Migration
дают ошибку, описанную выше. Если я выполню Add-Migration
с параметром -Verbose
, то перед ошибкой будет вывод:
C: \ Program Files \ dotnet \ do tnet .exe exe c --depsfile C: \ [решение] \ [начальный проект] \ [начальный проект] .deps. json --additionalprobingpath C: \ Users \ xx.nuget \ packages --additionalprobingpath "C: \ Program Files \ dotnet \ sdk \ NuGetFallbackFolder" C: \ Users \ xx.nuget \ Packages \ microsoft.entityframeworkcore.tools \ 3.1.1 \ инструменты \ netcoreapp2.0 \ любой \ ef.dll миграция добавить инициал - json --verbose --no-color --prefix-output --assembly C: \ [solution] \ [startupproject] \ [startupproject] \ [databaseproject] .dll --startup-Assembly C: \ [решение] \ [startupproject] \ [startupproject] .dll --project-dir C: \ [решение] \ [база данныхпроект] \ - язык C# --working-dir C: \ [решение] - root -namespace [databaseproject]
Основной вывод здесь --depsfile C:\[solution]\[startupproject]\[startupproject].deps.json
.
Поиск deps. json в решении: gci *.deps.json -r | select -prop FullName
FullName
C: \ [решение] \ [databaseproject] \ bin \ Debug \ netstandard2.0 \ DNB.BI.AA C .DataVault.Database.deps. json
C: \ [решение] \ [modelsproject] \ bin \ Debug \ netstandard2.0 [modelsproject] .deps. json
C: \ [решение] \ [startupproject] \ bin \ Debug \ netcoreapp3.1 [startupproject] .deps. json
Нет C:\[solution]\[startupproject]\[startupproject].deps.json
. Он находится в каталоге вывода сборки.
Ни один из других вопросов (и ответов) о deps. json, по-видимому, не охватывает этот сценарий. Несмотря на то, что у меня есть обходной путь, он немного усложняет запуск миграций. Я добавил обходной путь (копирование файлов вручную) в качестве ответа на этот вопрос.
Есть ли другой (лучший) подход / решение этой проблемы?