Я использую этот Учебник MSDN для запуска в VS2015 команды PM> Add-Migration MyFirstMigration -context BloggingContext, которая вчера успешно работала, но сегодня выдает следующую ошибку: также указали другие пользователи здесь. Я даже удалил папку Migrations из проводника решений и соответствующий db из SQL Express 2014 на Win 8.1, но с той же ошибкой. Даже если я запустил Add-Migration MyFirstMigration, я получаю ту же ошибку:

Add-Migration : The term 'Add-Migration' is not recognized as the name of a cmdlet, function, script file, or operable program. 
Check the spelling of the name, or if a path was included, verify that the path is correct and try again.
At line:1 char:1
+ Add-Migration MyFirstMigration -context BloggingContext
+ ~~~~~~~~~~~~~
    + CategoryInfo          : ObjectNotFound: (Add-Migration:String) [], CommandNotFoundException
    + FullyQualifiedErrorId : CommandNotFoundException

Примечание: я использую последнюю версию ASP.NET Core 1.0 и VS2015 - обновление 3, выпущенное 27 июня 2016 г.

ОБНОВЛЕНИЕ

Следующие команды отлично работают из каталога проекта в проводнике Windows при использовании окна команд:

> dotnet ef migrations add MyFirstMigration --context BloggingContext
> dotnet ef database update --context BloggingContext

ОБНОВЛЕНИЕ 2a

Ниже приведен файл project.json:

{
  "userSecretsId": "aspnet-ASPCore_RTM_CodeFirst_test-bef835d9-9831-41a8-bc3a-cd2f1477a880",

  "dependencies": {
    "Microsoft.NETCore.App": {
      "version": "1.0.0",
      "type": "platform"
    },
    "Microsoft.AspNetCore.Authentication.Cookies": "1.0.0",
    "Microsoft.AspNetCore.Diagnostics": "1.0.0",
    "Microsoft.AspNetCore.Diagnostics.EntityFrameworkCore": "1.0.0",
    "Microsoft.AspNetCore.Identity.EntityFrameworkCore": "1.0.0",
    "Microsoft.AspNetCore.Mvc": "1.0.0",
    "Microsoft.AspNetCore.Razor.Tools": {
      "version": "1.0.0-preview2-final",
      "type": "build"
    },
    "Microsoft.AspNetCore.Server.IISIntegration": "1.0.0",
    "Microsoft.AspNetCore.Server.Kestrel": "1.0.0",
    "Microsoft.AspNetCore.StaticFiles": "1.0.0",
    "Microsoft.EntityFrameworkCore.SqlServer": "1.0.0",
    "Microsoft.EntityFrameworkCore.SqlServer.Design": {
      "version": "1.0.0",
      "type": "build"
    },
    "Microsoft.EntityFrameworkCore.Tools": "1.0.0-preview2-final",
    "Microsoft.Extensions.Configuration.EnvironmentVariables": "1.0.0",
    "Microsoft.Extensions.Configuration.Json": "1.0.0",
    "Microsoft.Extensions.Configuration.UserSecrets": "1.0.0",
    "Microsoft.Extensions.Logging": "1.0.0",
    "Microsoft.Extensions.Logging.Console": "1.0.0",
    "Microsoft.Extensions.Logging.Debug": "1.0.0",
    "Microsoft.Extensions.Options.ConfigurationExtensions": "1.0.0",
    "Microsoft.VisualStudio.Web.BrowserLink.Loader": "14.0.0",
    "Microsoft.VisualStudio.Web.CodeGeneration.Tools": {
      "version": "1.0.0-preview2-final",
      "type": "build"
    },
    "Microsoft.VisualStudio.Web.CodeGenerators.Mvc": {
      "version": "1.0.0-preview2-final",
      "type": "build"
    }
  },

  "tools": {
    "BundlerMinifier.Core": "2.0.238",
    "Microsoft.AspNetCore.Razor.Tools": "1.0.0-preview2-final",
    "Microsoft.AspNetCore.Server.IISIntegration.Tools": "1.0.0-preview2-final",
    "Microsoft.EntityFrameworkCore.Tools": "1.0.0-preview2-final",
    "Microsoft.Extensions.SecretManager.Tools": "1.0.0-preview2-final",
    "Microsoft.VisualStudio.Web.CodeGeneration.Tools": {
      "version": "1.0.0-preview2-final",
      "imports": [
        "portable-net45+win8"
      ]
    }
  },

  "frameworks": {
    "netcoreapp1.0": {
      "imports": [
        "dotnet5.6",
        "portable-net45+win8"
      ]
    }
  },

  "buildOptions": {
    "emitEntryPoint": true,
    "preserveCompilationContext": true
  },

  "runtimeOptions": {
    "configProperties": {
      "System.GC.Server": true
    }
  },

  "publishOptions": {
    "include": [
      "wwwroot",
      "Views",
      "Areas/**/Views",
      "appsettings.json",
      "web.config"
    ]
  },

  "scripts": {
    "prepublish": [ "bower install", "dotnet bundle" ],
    "postpublish": [ "dotnet publish-iis --publish-folder %publish:OutputPath% --framework %publish:FullTargetFramework%" ]
  }
}

Ответы (21)

У меня тоже была эта проблема. Я закрыл и открыл VS2015, и он "устранил" проблему ...

Я пробовал делать все вышеописанное, и безуспешно. Я загрузил последний пакет .net core 2.0 и снова запустил команды, и все заработало.

У меня была эта проблема, и ни одно из предыдущих решений мне не помогло. Моя проблема на самом деле была связана с устаревшей версией PowerShell на моем компьютере с Windows 7 - как только я обновился до PowerShell 5, он начал работать.

У меня была эта проблема в Visual Studio 2013. Я переустановил диспетчер пакетов NuGet:

https://marketplace.visualstudio.com/items?itemName=NuGetTeam.NuGetPackageManagerforVisualStudio2013

Убедитесь, что Microsoft.EntityFrameworkCore.Tools упоминается в разделе dependencies вашего project.json. NuGet не загружает команды диспетчера пакетов из раздела tools. (См. NuGet / Home # 3023)

{
  "dependencies": {
    "Microsoft.EntityFrameworkCore.Tools": {
      "версия": "1.0.0-preview2-final",
      "тип": "сборка"
    }
  }
}

В моем случае в решении была ошибка, которая мне не пришла в голову. Я пытался восстановить, но не работал. Вот что вам следует сделать

  • Закройте Visual Studio и снова откройте.
  • Очистите решение и создайте его снова.
  • Он покажет ошибку в решении.
  • Устраните ошибку и повторите попытку.

(Ps: Visual Studio 2019 .netCore 5)

Вот что у меня сработало: В Visual Studio нажмите

Инструменты -> Диспетчер пакетов NuGet -> Консоль диспетчера пакетов

enter image description here

Затем вы можете запустить Add-Migration, например:

Add-Migration InitialCreate

same issue...resolved by dong the following

1.) Закрыть личный кабинет 2.) закройте Visual Studio 3.) Откройте Visual Studio 4.) Откройте личный кабинет

кажется, уловка в том, чтобы закрыть PM Manager перед закрытием VS

Просто установите Пакет Microsoft.EntityFrameworkCore.Tools из nuget:

Установочный пакет Microsoft.EntityFrameworkCore.Tools -Версия 5.0.7

Вы также можете использовать эту ссылку для установки последней версии: Ссылка на пакет NuGet

.NET CLI-команда:

dotnet add package Microsoft.EntityFrameworkCore.Tools

Если проблема не исчезнет, ​​попробуйте перезапустить Visual Studio.

Это шаги, которые я выполнил, и проблема была решена

1) Обновил мою оболочку Power с версии 2 до 3

2) Закрыл консоль PM

3) Перезапустил Visual Studio

4) Выполните следующую команду в консоли PM восстановление dotnet

5) Начальная миграция надстройки

Сработало !!!

Я столкнулся с той же проблемой. У большинства моих проектов в инструментах было то же самое.

"tools": {
    "Microsoft.EntityFrameworkCore.Tools": "1.0.0-preview2-final"
}

Это отлично работало для всех проектов, кроме одного. Я изменил запись в инструментах на

"tools": {
    "Microsoft.EntityFrameworkCore.Tools": {
    "version": "1.0.0-preview2-final",
    "type": "build"
  }
}

И затем запустил dotnet restore. После завершения восстановления Add-Migration работал нормально.

У меня была такая же проблема, и я обнаружил, что это проблема с версией Visual Studio в файле решения.

Я нацеливался:

VisualStudioVersion = 14.0.25123.0

Но мне нужно было нацелить:

VisualStudioVersion = 14.0.25420.1

После внесения этого изменения непосредственно в файл решения командлеты EF Core начали работать в консоли диспетчера пакетов.

Перейдите в консоль диспетчера пакетов (в Visual Studio) и выполните команду ниже

C: \ Users \ <ВАШ_ПОЛЬЗОВАТЕЛЬ> \ .nuget \ packages \ Microsoft.EntityFrameworkCore.Tools \ <ВАША_УСТАНОВЛЕННАЯ_ВЕРСИЯ> \ tools \ init.ps1

Просто попробуйте запустить Microsoft.EntityFrameworkCore.Tools. В личку выполнить

C:\Users\\.nuget\packages\Microsoft.EntityFrameworkCore.Tools\1.0.0-preview2-final\tools\init.ps1.

It helped me with the same problem. A version of the tools might be different. It`s depended of what you use in your project.

Я думаю, что ответ нуждается в обновлении в 2017 году, так как MS внесла некоторые (критические) изменения, которые подробно описаны здесь.

https://github.com/aspnet/EntityFramework/issues/7053

Подводя итог, теперь вам понадобится ссылка на EntityFrameWorkCore.Tools.DotNet в разделе «Инструменты», как показано ниже

«Microsoft.EntityFrameworkCore.Tools.DotNet»: «1.0.0»

Я также разместил ниже рабочий файл project.json на случай, если у кого-то возникнут проблемы.

{
  "dependencies": {
    "Microsoft.NETCore.App": {
      "version": "1.0.1",
      "type": "platform"
    },
    "Microsoft.AspNetCore.Diagnostics": "1.0.0",
    "Microsoft.AspNetCore.Server.IISIntegration": "1.0.0",
    "Microsoft.AspNetCore.Server.Kestrel": "1.0.1",
    "Microsoft.Extensions.Logging.Console": "1.0.0",
    "Microsoft.AspNetCore.Razor.Tools": {
      "version": "1.0.0-preview2-final",
      "type": "build"
    },
    "Microsoft.AspNetCore.StaticFiles": "1.0.0",
    "Microsoft.AspNetCore.Mvc": "1.0.1",
    "Microsoft.EntityFrameworkCore.SqlServer": "1.0.1",
    "Microsoft.Extensions.Configuration.Json": "1.0.1",
    "Microsoft.EntityFrameworkCore.Tools": {
      "version": "1.0.0-preview2-final",
      "type": "build"
    }
  },

  "tools": {
    "Microsoft.AspNetCore.Server.IISIntegration.Tools": "1.0.0-preview2-final",
    "Microsoft.AspNetCore.Razor.Tools": "1.0.0-preview2-final",
    "Microsoft.EntityFrameworkCore.Tools": "1.0.0-preview2-final",
    "Microsoft.EntityFrameworkCore.Tools.DotNet": "1.0.0"
  },

  "frameworks": {
    "netcoreapp1.0": {
      "imports": [
        "dotnet5.6",
        "portable-net45+win8"
      ]
    }
  },

  "buildOptions": {
    "emitEntryPoint": true,
    "preserveCompilationContext": true
  },

  "runtimeOptions": {
    "configProperties": {
      "System.GC.Server": true
    }
  },

  "publishOptions": {
    "include": [
      "wwwroot",
      "web.config"
    ]
  },

  "scripts": {
    "postpublish": [ "dotnet publish-iis --publish-folder %publish:OutputPath% --framework %publish:FullTargetFramework%" ]
  }
}

Что мне нужно было сделать ...

1) Инструменты -> Диспетчер пакетов Nuget -> Настройки диспетчера пакетов

2) Вкладка Общие

3) Очистить все кеши NuGet

4) Перезапустите Visual Studio

Попробуйте выполнить следующие действия:

1) Откройте файл project.json и Удалите все ссылки Microsoft.EntityFrameworkCore.Tools из разделов dependencies и tools.

2) Закройте Консоль диспетчера пакетов (PMC) и перезапустите Visual Studio

3) Добавить в зависимости раздел:

 "Microsoft.EntityFrameworkCore.Tools": {
  "version": "1.0.0-preview2-final",
  "type": "build"
 }

4) Добавить в инструменты раздел

"Microsoft.EntityFrameworkCore.Tools": "1.0.0-preview2-final"

5) Restart again Visual Studio 2015

6) Откройте PMC и введите

Add-Migration $Your_First_Migration_Name$

Это происходит потому, что PMC распознает инструменты при запуске Visual Studio.

В моем случае я добавил зависимость через Nuget:

Microsoft.EntityFrameworkCore.Tools

А затем запустить через Консоль диспетчера пакетов:

add-migration Initial -Context "ContextName" -StartupProject "EntryProject.Name" -Project "MigrationProject.Name"

Моя была очень глупая ошибка!

Решение:

  • Повторно открыть репозиторий Visual Studio и Clone.
  • Не забудьте дважды щелкнуть файл решения, чтобы загрузить его.

С точки зрения Asp.Net Core 5.0

В проекте Migrations Установите следующее: NuGets to be installed in Migrations project

  • Добавить ссылку на проект уровня доступа к данным (DAL) (например, если есть ссылка на модели Auth)

В проекте Startup / Api Установите следующее: NuGets to be installed in startup/Api project

  • Добавьте ссылку на свой проект миграции.
  • Добавьте ссылку на проект уровня доступа к данным (DAL), если он у вас есть.

Убедитесь, что вы добавили производный тип DbContext в коллекцию служб, используя следующую строку кода в Startup.ConfigureServices (службы IServiceCollection):

services.AddDbContext(options => 
                  options.UseSqlServer(Configuration.GetConnectionString("YourDb"),
                                      x=>x.MigrationsAssembly("Your.Migrations")));

Вы должны знать, какая у вас версия Entity-Framework. Также после этого вы должны проверить project.json и проконтролировать эти разделы:

В Зависимости

чек:

Microsoft.EntityFrameworkCore.Tools": {
  "version": "1.0.0-preview2-final",
  "type": "build"
},

Этот раздел:

"версия": "1.0.0-preview2-final",

связан с версией вашего Entity-Framework, и вы должны это изменить.

После этого второй раздел proj.json находится здесь. В разделе Tools JSON у вас есть:

"Microsoft.EntityFrameworkCore.Tools": "1.0.0-preview2-final",

Также эта часть кода связана с вашей Entity-Framework и последней частью кода в разделе Dependencies.

Примечание: После этого вам следует закрыть CMD и перезапустить Visual Studio.

2022 WebDevInsider