Подтвердить что ты не робот

Термин "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%" ]
  }
}
4b9b3361

Ответ 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, и он "исправил" проблему...

Ответ 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 и снова выполнил команды, и он сработал.