Указанный deps. json [C: \ [solution] \ [startupproject] \ [startupproject] .deps.json] не существует - PullRequest
0 голосов
/ 12 февраля 2020

Настройка EF Core в отдельном проекте от основного ASP. Net В базовом проекте происходит сбой Add-Migration с ошибкой The specified deps.json [C:\[solution]\[startupproject]\[startupproject].deps.json] does not exist.

Примечание: я подставил root папка с [Solution], запускаемый проект с [startupproject] и далее вниз проект базы данных с [databaseproject].

Короче, у меня есть 3 проекта, настроенных как описано здесь :

  1. ASP. Net Core web api, это стартовый проект ([startpproject])
  2. База данных Entity Framework Core, содержит DbContext ([databaseproject] )
  3. Общий проект для моделей ([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, по-видимому, не охватывает этот сценарий. Несмотря на то, что у меня есть обходной путь, он немного усложняет запуск миграций. Я добавил обходной путь (копирование файлов вручную) в качестве ответа на этот вопрос.

Есть ли другой (лучший) подход / решение этой проблемы?

1 Ответ

0 голосов
/ 12 февраля 2020

Копирование только C:\[solution]\[startupproject]\bin\Debug\netcoreapp3.1\[startupproject].deps.json в C:\[solution]\[startupproject]\[startupproject].deps.json не помогает, выдает новую ошибку отсутствия [databaseproject] .dll.

Однако копирует все файлы / папки (не перезаписывая ничего, например, appsettings *. json и свойство-папка) из выходных данных сборки C:\[solution]\[startupproject]\bin\Debug\netcoreapp3.1\ до C:\[solution]\[startupproject] делает и Add-Migration, и Update-Database отлично работающими. Скопированные файлы могут и должны быть впоследствии удалены.

Обратите внимание, что проект должен быть перестроен до Add-Migration и снова до Update-Database.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...