Ответ 1
Вместо:
"tools": {
"Microsoft.EntityFrameworkCore.Tools.DotNet":"1.0.0"
},
попробовать:
"tools": {
"Microsoft.EntityFrameworkCore.Tools.DotNet": {
"version": "1.0.0-preview3-final"
}},
Я использую Visual Studio 2015 и ядро dotnet и пытаюсь разработать проект EF Core Code First с использованием Sqlite и этого руководства/документации, в котором также используется Sqlite => NET Core. - Новая база данных
Когда я пытаюсь добавить начальную миграцию из командной строки (я попал на компакт-диск в папку, в которой находится мой проект модели данных), введя следующую команду
dotnet ef migrations add InitialMigration
... я получаю следующую ошибку.
Проект не найден. Измените текущий рабочий каталог или используйте опцию --project.
Я даже пытался использовать опцию --project
следующим образом.
> dotnet --project "C:\Shiva\EF\EFCFSqlite.Data.xproj" ef migrations add InitialMigration
но это дает следующую ошибку.
Unknown option: --project
.NET Command Line Tools (1.0.0-preview2-003131)
Usage: dotnet [host-options] [command] [arguments] [common-options]
Я заметил, что документация использует файл .csproj
, тогда как мой Проект показывает файл xproj
. Также в документах упоминается что-то, что вы больше не используете project.json
:(
Здесь мой файл project.json
.
{
"version": "1.0.0-*",
"dependencies": {
"Microsoft.EntityFrameworkCore.Sqlite": "1.1.1",
"Microsoft.EntityFrameworkCore.Sqlite.Design": "1.1.1",
"NETStandard.Library": "1.6.1"
},
"tools": {
"Microsoft.EntityFrameworkCore.Tools.DotNet":"1.0.0"
},
"frameworks": {
"netstandard1.6": {
"imports": "dnxcore50"
}
}
Что изменилось? У нас нет выбора, кроме как установить Visual Studio 2017 и начать с нуля?? project.json
и все эти другие вещи больше не соблюдаются?
Вместо:
"tools": {
"Microsoft.EntityFrameworkCore.Tools.DotNet":"1.0.0"
},
попробовать:
"tools": {
"Microsoft.EntityFrameworkCore.Tools.DotNet": {
"version": "1.0.0-preview3-final"
}},
иногда вам нужно изменить текущий каталог в консоли/терминале, например:
PM> cd E:\Projects\CrossTest\
PM> dotnet ef migrations add InitialMigration
и Совместите версии вашего пакета. Либо используйте пакеты preview1 или preview2. Сочетание тех не поддерживается.
Microsoft.EntityFrameworkCore.Tools
Microsoft.EntityFrameworkCore.Design
Edit
, а затем добавьте следующее в ItemGroup
, который содержит узлы PackageReference
<DotNetCliToolReference Include="Microsoft.EntityFrameworkCore.Tools.DotNet" Version="2.0.3" />
(Вы можете найти последнюю версию, найдя ее в менеджере пакетов Nuget)
cd {path where your csproj file resides}
(это важно)dotnet ef migrations add InitialMigration
Просто столкнулся с подобной проблемой. Исправлено с понижением до 1.0.0-preview3-final
"tools": {
"Microsoft.EntityFrameworkCore.Tools.DotNet": "1.0.0-preview3-final",
}
и изменение параметра -project для - startup-project
dotnet ef --startup-project <PATH_TO_PROJECT_DIRECTORY> migrations add <MIGRATION_NAME>
В global.json я также понизил версию до
"sdk": {
"version": "1.0.0-preview2-003131"
}
Это может быть временным обходным путем перед переходом на csproj.
Команда dotnet-ef перемещена.
Вам нужно будет добавить ссылку на Microsoft.EntityFrameworkCore.Tools.DotNet ИMicrosoft.EntityFrameworkCore.Design для ваших зависимостей в project.json, а затем добавьте Microsoft.EntityFrameworkCore.Tools.DotNet в раздел инструментов, и вам должно быть хорошо, чтобы идти.
Процитировано: http://errummwelluhh.blogspot.com
Это просто означает, что
ВЫ НЕ В СОВРЕМЕННОЙ СПРАВОЧНИКЕ ПРОЕКТА
Я столкнулся с той же проблемой, когда создавал леса для существующей базы данных MySql, используя этот.
Команда, которую я выполнял:
dotnet ef dbcontext scaffold "Server=123.1.1.1;Uid=abc;Pwd=abc;Database=mcs_ssgc;Connection Timeout=20;Persist Security Info=False;Port=3306;Allow User Variables=True;Connect Timeout=120;" MySql.Data.EntityFrameworkCore -o Models
Вызывая ту же ошибку, я проверил текущий рабочий каталог в консоли диспетчера пакетов и обнаружил, что он неправильный.
В моем случае
Я имею в виду, что я не был в текущем каталоге проекта, после переключения каталога
cd SSGCApp
Теперь вы находитесь в каталоге проекта все хорошо, чтобы запустить команду.