程序包管理器控制台仅在特定的VS项目中启用 - 迁移CommandNotFoundException

Edu*_*tes 108 migration entity-framework

我试图在一个新项目中运行命令'Enable-Migrations',我收到了消息:

PM> Enable-Migrations
The term 'Enable-Migrations' 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, verif
y that the path is correct and try again.
At line:1 char:18
+ Enable-Migrations <<<< 
    + CategoryInfo          : ObjectNotFound: (Enable-Migrations:String) [], CommandNotFoundException
    + FullyQualifiedErrorId : CommandNotFoundException
Run Code Online (Sandbox Code Playgroud)

但是在所有其他项目中,命令运行得很好.

为什么会这样?

顺便说一下,我正在使用VS2010 Professional SP1

编辑:我重新安装了命令:Install-Package EntityFramework -IncludePrerelease ,问题消失了.

Don*_*nal 83

只是简单地重新启动Visual Studio为我工作.无需安装包等

  • 重启VS也对我有用,很高兴我在尝试重新安装EntityFramework之前尝试了这个 (7认同)
  • 重新启动VS也为我工作. (6认同)
  • 重新启动适用于Visual Studio 2015.无需安装软件包. (5认同)
  • 注意 - 每次我必须安装我的软件包时都会遇到这个问题(比如新的回购).看起来VS需要在使用新软件包正确初始化PM之前重新启动(VS Community 2015 Update 1) (5认同)
  • 新鲜的回购拉也给我带来了这个.重启修复它.(VS Enterprise 2015 Update 2). (2认同)
  • 也曾在Visual Studio 2017中工作过 (2认同)

Edu*_*tes 76

我重新安装了命令:Install-Package EntityFramework -IncludePrerelease,问题消失了.

  • 我构建了我的解决方案,然后关闭并重新打开VS 2013并且它有效 (13认同)

Lij*_*ijo 21

发生此问题是因为我们没有安装Entity Framework.请使用以下命令安装Entity Framework.

Install-Package EntityFramework -IncludePrerelease
Run Code Online (Sandbox Code Playgroud)

安装后,在包管理器控制台默认项目下拉列表中选择项目.

确保项目中至少有一个类继承自数据上下文,否则请使用以下类:

public class MyDbContext : DbContext
    {
        public MyDbContext()
        {
        }
    }
Run Code Online (Sandbox Code Playgroud)

如果我们不这样做,我们将收到另一个错误:

No context type was found in the assembly

完成这些事后你就可以跑了

enable-migrations
Run Code Online (Sandbox Code Playgroud)


Sat*_*chi 17

使用管理员权限重新启动Visual Studio 为我解决了这个问题.


jac*_*oke 13

使您以管理员身份运行Visual Studio.


Uza*_*zay 10

首先"Install-Package EntityFramework -IncludePrerelease"然后以管理员身份重新启动Visual Studio 一起为我工作.


iro*_*man 5

我遇到了同样的问题,我尝试了其他人提供的大部分解决方案,但通过以下步骤对我有用。我有 VS 2017。

脚步:

Install-Package EntityFramework -IncludePrerelease
Run Code Online (Sandbox Code Playgroud)

然后创建一个类

public class MyDBContext : DbContext { public MyDBContext() { } }
Run Code Online (Sandbox Code Playgroud)

最后执行

Enable-Migrations -EnableAutomaticMigrations
Run Code Online (Sandbox Code Playgroud)

什么对我不起作用:

: 重启VS。

:只有“Enable-Migrations”命令,没有-EnableAutomaticMigrations。

:恢复或更新 Nuget 包管理器。

我最初的错误是

/* 术语“启用迁移”不被识别为 cmdlet、函数、脚本文件或可运行程序的名称。检查名称的拼写,或者如果包含路径,请验证路径是否正确并重试。在 line:1 char:1 + enable-migration + ~~~~~~~~~~~~~~ ~~ + CategoryInfo : ObjectNotFound: (enable-migration:String) [], CommandNotFoundException */


Jea*_*anz 5

我在VS 2019 Preview,.Net Core和EntityFramework Core中遇到了相同的问题。

原来我必须通过NuGet Microsoft.EntityFrameworkCore.Tools和安装Microsoft.EntityFrameworkCore.Design。一旦完成,它就像一个魅力。

  • +1 - 我还需要重新启动 VS - 我认为 PM / PS 环境需要在此更改后重新初始化 (2认同)