EF-миграция и $ SolutionDir, .NetCore 2.2 - PullRequest
0 голосов
/ 10 июня 2019

У меня странная ошибка при попытке создать начальную миграцию в EF.

У меня есть несколько проектов - в основном .NetStandard.Каждый проект импортирует пользовательский файл .targets.Это просто строки в верхней части файла .csproj:

<Import Project="$(SolutionDir)Common.targets" />

Теперь, когда я создаю свое приложение, все работает нормально.Когда я запускаю настольный проект (который использует эти .NetStandard dll), все работает нормально.

Но когда я пытаюсь добавить начальную миграцию БД, я получаю ошибки вроде:

D:\SolutionDir\ProjectDir\Project.csproj: error MSB4019: Cannot find imported project file: "D:\SolutionDir\ProjectDir\Common.targets" Make sure that the path in <Import> declaration is valid and the file exists.

Обратите внимание, что я использую $ (SolutionDir), поэтому допустимый путь: «D: \ SolutionDir \ Common.targets».Так почему он ищет этот файл в каталоге проекта?

1 Ответ

0 голосов
/ 11 июня 2019

ОК, оказывается, что $ (SolutionDir) действителен только при компиляции из VisualStudio.$ (SolutionDir) не существует, когда приложение создается другими способами (например, командами dotnet).Таким образом, единственный способ - создать относительный путь из файла проекта.

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