Термин "Add-Migration" не распознается
Я использую этот учебник MSDN для запуска в VS2015 команды PM> Add-Migration MyFirstMigration -context BloggingContext
, которая успешно работала вчера, но сегодня она дает следующую ошибку: также отмечены другими пользователями здесь. Я даже удалил папку Migrations из обозревателя решений и соответствующую db из SQL Express 2014 on 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 - Update 3, выпущенную 27 июня 2016 года.
UPDATE
Следующие команды отлично работают в каталоге проекта в проводнике 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%" ]
}
}
Ответы
Ответ 1
Попробуйте выполнить следующие действия:
1) Откройте файл project.json
и Удалить все ссылки Microsoft.EntityFrameworkCore.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) Перезапустить снова Visual Studio 2015
6) Откройте PMC и введите
Add-Migration $Your_First_Migration_Name$
Это происходит потому, что PMC распознает инструменты при запуске Visual Studio.
Ответ 2
Убедитесь, что Microsoft.EntityFrameworkCore.Tools
ссылается в разделе dependencies
вашего project.json
. NuGet не загружает команды диспетчера пакетов из раздела tools
. (См. NuGet/Home # 3023)
{
"dependencies": {
"Microsoft.EntityFrameworkCore.Tools": {
"version": "1.0.0-preview2-final",
"type": "build"
}
}
}
Ответ 3
У меня тоже была эта проблема. Я закрыл и открыл VS2015, и он "исправил" проблему...
Ответ 4
У меня была эта проблема в Visual Studio 2013. Я переустановил диспетчер пакетов NuGet:
https://marketplace.visualstudio.com/items?itemName=NuGetTeam.NuGetPackageManagerforVisualStudio2013
Ответ 5
Просто попробуйте запустить Microsoft.EntityFrameworkCore.Tools.
В PM выполните
C:\Users\<username>\.nuget\packages\Microsoft.EntityFrameworkCore.Tools\1.0.0-preview2-final\tools\init.ps1.
Это помогло мне с той же проблемой.
Версия инструментов может отличаться. Это зависит от того, что вы используете в своем проекте.
Ответ 6
та же проблема... разрешена dong следующим
1.) закрыть менеджер по работе с клиентами
2.) закрыть Visual Studio
3.) Откройте Visual Studio
4.) Открытие диспетчера почты
Кажется, трюк заключается в том, чтобы закрыть PM Manager перед закрытием VS
Ответ 7
Что я должен был сделать...
1) Инструменты → Nuget Package Manger → Настройки диспетчера пакетов
2) Вкладка "Общие"
3) Очистить все кеши NuGet
4) Перезапустите Visual Studio
Ответ 8
У меня была такая же проблема, и я обнаружил, что это проблема с версией Visual Studio в файле Solution.
Я нацелился:
VisualStudioVersion = 14.0.25123.0
Но мне нужно было настроить таргетинг:
VisualStudioVersion = 14.0.25420.1
После внесения этого изменения непосредственно в файл решения, в консоли управления пакетами начали работать командлеты EF Core.
Ответ 9
Я столкнулся с той же проблемой. Большинство моих проектов имели то же самое в инструментах.
"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
работает нормально.
Ответ 10
У меня была эта проблема, и ни одно из предыдущих решений не помогло мне. Моя проблема была на самом деле из-за устаревшей версии powershell на моей машине с Windows 7 - как только я обновился до powershell 5, она начала работать.
Ответ 11
Это шаги, которые я выполнил, и он решил проблему
1) Модернизированная оболочка Power от версии 2 до 3
2) Закрыл консоль PM
3) Перезапущенная Visual Studio
4) Отмените команду ниже в консоли PM
восстановление dotnet
5) Add-Migration InitialMigration
Это сработало!!!
Ответ 12
Перейдите в консоль диспетчера пакетов (в visual studio) и выполните команду ниже
C:\Users\<YOUR_USER>\.nuget\packages\Microsoft.EntityFrameworkCore.Tools\<YOUR_INSTALLED_VERSION>\tools\init.ps1
Ответ 13
Я думаю, что ответ нуждается в обновлении в 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%" ]
}
}
Ответ 14
Я попытался сделать все вышеизложенное и не повезло. Я загрузил последний пакет .net core 2.0 и снова выполнил команды, и он сработал.