术语“ Update-Database”不能识别为 cmdlet 的名称

我使用 EF5beta1,虽然我能够运行“更新数据库”之前。现在我关闭了 VisualStudio,就无法运行它了。我得到以下错误:

术语“ Update-Database”不能识别为 cmdlet、函数、脚本文件或可操作程序的名称。检查名称的拼写,或者如果包含路径,请验证路径是否正确,然后再试一次。 在行: 1 char: 16 + 更新-数据库 < < <-详细 + Category oryInfo: ObjectNotfound: (Update-Database: String)[] ,CommandNotFoundException + FullyQualifiedErrorId: CommandNotFoundException

我尝试重新安装 EF5b1,虽然是成功的(已经安装) ,’更新数据库’仍然无法工作。

有人能帮忙吗?

126558 次浏览

解决方案是关闭 PackageManager 控制台,关闭 VisualStudio,然后重新打开它们。

重启在大多数情况下也有效,但并不总是如此。

我遇到了同样的问题,它的起源是在我的路径名上,我在我的路径上有一个直括号的目录名,像这样: C:\[PROJ]\TestApp

当我移除支架,到 C:\PROJ\TestApp,它开始工作正常..。

当您直接从文件资源管理器打开项目时,似乎会发生此问题。试着先开始 VS,然后再打开这个项目——对我来说很有效。我猜这是关于路径的问题。

重新安装 Nuget 软件包为我解决了这个问题

就是执行

Install-Package EntityFramework -Version 5.0.0

在包管理器中

只是重新开放视觉工作室是我的工作

有时,当我加载 VS 时,我会在包管理器控制台中看到这一点:

值不能为空。

参数名称: path1

我还不知道是什么原因造成的,但是看起来在启动 Powershell 控制台的时候出了问题,中断了特定模块的注册,比如 EF Powershell 扩展。不过,你可以手动加载它:

Import-Module .\packages\EntityFramework.6.1.1\tools\EntityFramework.psm1

请确保将6.1.1替换为当前版本的实体框架。

对我来说,问题在于 Nuget 版本。

我删除并重新安装了 Nuget,然后重新启动了 VisualStudio,然后一切都开始工作了。

如果使用实体框架:

错误信息:

”错误消息(来自 PMC 中的 Update-Database 命令) : 术语“ Update-Database”不能识别为 cmdlet、函数、脚本文件或可操作程序的名称。检查名称的拼写,或者如果包含路径,请验证路径是否正确,然后再试一次。”

解决方案:

退出 VisualStudio。重新打开项目并重试。

详情请浏览: MVC 5 Web 应用程序的高级实体框架6场景(12/12)

对我来说,问题是 核桃版的

  1. 卸载 Nuget 软件包管理器。
  2. 重新启动 Visual Studio。
  3. 安装了新版本的 Nuget 包管理器。
  4. 然后重新启动 VisualStudio。

当 EF 工具没有正确安装时,您将得到这个错误。

在 Nuget 软件包管理器中尝试下面的命令 //卸载并安装相同版本的 EF

Update-Package "EntityFramework" -reinstall

如果你还面临同样的问题。 创建一个新的 Web 项目并运行以下命令。

(注意: 无需在相同的解决方案中创建新的 Project 或 同一地点。)

//这将更新 EF 到最新版本(包括工具) //如果要使用特定的版本,请使用 -version标志。

Update-Package "EntityFramework"

完成此操作后,检查原始项目,然后可以删除新创建的项目。

就我而言,我做了以下事情: - 通过点击 Package Manager 控制台顶部的“恢复”按钮来恢复丢失的 NuGet 软件包 - 重新启动视觉工作室 运行 update-database

恢复 NuGet 软件包对我没有帮助。

我不得不重新安装软件包管理器 -https://visualstudiogallery.msdn.microsoft.com/4ec1526c-4a8c-4a84-b702-b21a8f5293ca

如果其他答案不起作用(VS2017) : 清除 NuGet 缓存,重新启动 VS,然后恢复包。

我发现这是由于一个腐败的包裹。我已经安装了自动售货机时,它已经安装。当我试图安装另一个软件包时,只能清楚地看到这个软件包已经损坏。

移除损坏的软件包为我解决了这个问题。

然后你可以重新安装自动装配程序。问题是版本5.4,我现在很高兴在6.0。

对我来说,EntityFramework 核心没有安装在我的项目上(因为我是从空白项目开始的)。因此,安装 实体框架包解决了这个问题。有时,如果 EntityFramework 安装失败,那么尝试逐个安装单独的软件包

例如。

Microsoft.EntityFrameworkCore.Design
Microsoft.EntityFrameworkCore.SqlServer
Microsoft.EntityFrameworkCore.SqlServer.Design
Microsoft.EntityFrameworkCore.Tools

我通过更新包管理器控制台解决了这个问题。

我没有得到更新数据库在包管理器控制台。然后我重新启动了几次。也重新启动 Windows。

然后我从 Nuget下载了一个新的,然后就解决了。

只要重启 Visual Studio 就能解决问题,我没问题。

我在 Visual Studio 2015中遇到了这个问题,通过更新 Nuget 的版本解决了这个问题。

工具-> 扩展和更新-> 更新-> Visual Studio Gallery

对我来说,简单的修复是确保在更新和数据库之间有一个破折号,如下所示: update-database和使用小写。这可能是巧合,但是当我在数据包管理器控制台中这样做时,数据库实际上更新了,我得到的是已完成的消息,而不是 not recognized as the name of a cmdlet, function, script file错误。

我通过卸载和重新安装 Microsoft.EntityFrameworkCoreMicrosoft.EntityFrameworkCore.Tools解决了这个问题

在我不小心用 VisualStudio2015而不是2017打开 VisualStudio 解决方案之后,我开始遇到同样的问题。在那次事故之前,这个项目运转得很好。这是一个使用 EF 5.0而不是 EF Core 的老项目。

我尝试了所有建议-重新启动 Visual Studio 无数次,清理 NuGet 缓存,删除包文件夹中的所有东西,为项目重新安装 EF 5-没有用,添加-迁移没有被识别。如果我把 EF 升级到6,它就会识别命令,但我还不想升级。所以,当我回到 EF5时,问题又回来了。

最后唯一救了我的就是做下面这些事:

  • 关闭视觉工作室
  • 从包文件夹中删除所有内容
  • 删除。Vs 文件夹在您的解决方案的根。此文件夹通常是隐藏的,您必须打开显示隐藏文件和文件夹设置或检查隐藏项目在文件夹视图选项卡
  • 启动 VisualStudio 并打开您的解决方案。它将要求恢复 NuGet 包,并同意它。

现在 EF 命令终于开始工作了。

就我而言:

  • 重新加载项目没有帮助
  • 重新启动 VS 没有帮助
  • 重新启动计算机没有帮助
  • 安装 EF 没有帮助

但我发现了一个 文章,其中建议手动导入丢失的 EF 包,使用 PM Conole:

Import-Module .\packages\EntityFramework.X.X.X\tools\EntityFramework.psm1

这个办法解决了我的问题。

对于使用.Net Core 和 EntityFrameworkCore 的用户:

您需要安装 Microsoft.EntityFrameworkCore.Tools软件包来解决这个问题。

阅读更多: https://learn.microsoft.com/en-us/ef/core/miscellaneous/cli/powershell

在我的案例中,重新启动 Visual Studio (许多,许多次)不起作用,然后当我在其他地方寻找时,我在输出终端上发现了一条消息:

当前的.NET SDK 不支持以.NET Core 2.2为目标 目标.NET Core 2.1或更低版本,或使用 支持.NET Core 2.2。

因此,我安装了所需版本的.NETCore,命令运行成功。

我在 VS2019中使用 EntityFramework6.3.0的一个现有项目遇到了这个问题。这个项目在一段时间内做了一些奇怪的版本更改,没有什么可以让它工作。我想我尝试了这里列出的所有建议,但都没有成功。

最后,更新到预发布版本的 EntityFramework (目前为6.4.0-preview3-19553-01)通过在 Package Manager Console: Update-Package EntityFramework -prerelease中运行该版本确实解决了这个问题。我希望当这个版本在接下来的几周内发布时,它能正常工作。

安装 Microsoft.EntityFrameworkCore.Tools 为我解决了这个问题,使用了 nuget 软件包

大多数情况下,这些测试版本有一些问题,如果实体框架未能加载,这也可能发生,如果你安装微软。实体框架核心。全球的工具。尝试将它本地安装到您的项目中 .您可以尝试这些步骤,直到您解决了这个问题。记住这个方法不是为了解决问题这是另一种方法。

  1. cd位于您的项目目录中。而不是位于项目目录中的 sln 目录。
  2. 然后使用 dotnet ef查看您是否正确安装了实体框架。
  3. 然后使用 dotnet ef migrations add "ReplaceThisWithSomeText"命令。这将创建新的迁移。
  4. 然后使用 dotnet ef database update更新数据库。

迁移概述。这将有助于太. 。

Windows 命令-cd

(这是针对 EFCore 项目的)