130

我正在使用 EF5 beta1,虽然我之前能够运行“更新数据库”。现在我关闭了 Visual Studio,我无法让它运行。我收到以下错误:

术语“更新数据库”不被识别为 cmdlet、函数、脚本文件或可运行程序的名称。检查名称的拼写,或者如果包含路径,请验证路径是否正确并重试。在 line:1 char:16 + Update-Database <<<< -verbose + CategoryInfo : ObjectNotFound: (Update-Database:String) [], CommandNotFoundException + FullyQualifiedErrorId : CommandNotFoundException

我尝试重新安装 EF5b1,虽然成功(已安装),但“更新数据库”仍然无法正常工作。

谁能帮忙???

4

27 回答 27

177

解决方案是关闭包管理器控制台,关闭 Visual Studio,然后重新打开它们。

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

于 2012-05-14T18:57:06.487 回答
56

如果您使用实体框架:

错误信息:

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

解决方案:

退出 Visual Studio。重新打开项目并重试。

有关更多信息,请访问:MVC 5 Web 应用程序的高级实体框架 6 场景(12 个中的 12 个)

于 2015-03-13T11:58:47.447 回答
31

对于使用 .Net Core 和 EntityFrameworkCore 的任何人:

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

在此处阅读更多信息:https ://docs.microsoft.com/en-us/ef/core/miscellaneous/cli/powershell

于 2019-04-10T11:57:30.147 回答
24

重新安装 nuget 包为我解决了这个问题

即,执行

Install-Package EntityFramework -Version 5.0.0

在包管理器中

于 2014-01-21T10:59:21.810 回答
21

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

值不能为空。

参数名称:path1

我还不知道是什么原因造成的,但似乎在 Powershell 控制台启动期间出现了问题,这会中断特定模块的注册,例如 EF Powershell 扩展。但是,您可以手动加载它:

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

确保将 6.1.1 替换为当前版本的 Entity Framework。

于 2014-08-27T14:08:20.803 回答
11

如果未正确安装 EF 工具,您将收到此错误。

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

Update-Package "EntityFramework" -reinstall

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

(注意:无需在相同的解决方案或相同的位置创建新项目。)

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

Update-Package "EntityFramework"

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

于 2016-03-25T06:53:16.547 回答
10

只需重新启动 Visual Studio,即可解决问题。为我工作。

于 2017-06-07T05:35:11.437 回答
5

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

于 2019-12-19T04:06:04.790 回答
4

我遇到了同样的问题,它的起源是我的路径名,我的路径上有一个带直括号的目录名,如下所示:C:\[PROJ]\TestApp.

当我删除括号时, to C:\PROJ\TestApp,它开始工作得很好......

于 2012-09-17T10:23:06.057 回答
4

Just ReOpen 视觉工作室适合我

于 2014-08-02T07:25:03.203 回答
4

对我来说,问题是Nuget 版本

  1. 卸载 Nuget 包管理器。
  2. 重新启动 Visual Studio。
  3. 安装了新版本的 Nuget 包管理器。
  4. 然后再次重新启动 Visual Studio。
于 2015-05-11T08:40:41.043 回答
3

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

于 2019-01-16T14:20:43.013 回答
2

当您直接从文件资源管理器打开项目时,似乎会发生此问题。尝试先启动 VS,然后打开项目 - 对我有用。我猜这是关于访问路径的。

于 2013-08-30T16:05:56.927 回答
0

我发现这是由于一个损坏的包。我已经安装了 Automapper。当我尝试安装另一个包时,很明显这个包已损坏。

删除损坏的包为我解决了这个问题。

然后,您可以重新安装 automapper。问题出在 5.4 版上,我现在很高兴在 6.0 版上。

于 2017-02-06T11:58:53.563 回答
0

对我来说,事实证明我的项目中没有安装 EntityFramework 核心(因为我从空白项目开始)。所以安装EntityFramework包解决了这个问题。有时,如果 EntityFramework 安装失败,则尝试一一安装单个软件包

例如

Microsoft.EntityFrameworkCore.Design
Microsoft.EntityFrameworkCore.SqlServer
Microsoft.EntityFrameworkCore.SqlServer.Design
Microsoft.EntityFrameworkCore.Tools
于 2017-04-24T12:30:50.697 回答
0

在我不小心用 Visual Studio 2015 而不是 2017 打开了 Visual Studio 解决方案后,我开始遇到同样的问题。该项目在那次事故之前运行良好。这是一个使用 EF 5.0 而不是 EF Core 的旧项目。

我尝试了所有建议 - 无数次重新启动 Visual Studio,清理 NuGet 缓存,删除包文件夹中的所有内容,为项目重新安装 EF 5 - 不好,无法识别添加迁移。如果我将 EF 升级到 6,它会开始识别命令,但我还不想升级。因此,一旦我恢复到 EF 5,问题就又回来了。

最终拯救我的唯一一件事是执行以下操作:

  • 关闭 Visual Studio
  • 从包文件夹中删除所有内容
  • 删除解决方案根目录中的 .vs 文件夹。此文件夹通常是隐藏的,您必须打开显示隐藏文件和文件夹设置或选中文件夹查看选项卡中的隐藏项目
  • 启动 Visual Studio 并打开您的解决方案。它会要求恢复 NuGet 包,同意它。

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

于 2019-03-08T16:20:57.960 回答
0

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

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

然后我从nuget下载了新的,然后就解决了。

于 2017-05-04T17:37:19.657 回答
0

就我而言,我执行了以下操作: - 通过单击包管理器控制台顶部的“恢复”按钮恢复丢失的 NuGet 包 - 重新启动 Visual Studio - 运行update-database

于 2016-07-15T20:25:05.220 回答
0

大多数情况下,这些 beta 版本存在一些问题,如果 Entity Framework 无法加载,并且如果您在全局安装 Microsoft.EntityFrameworkCore.Tools 也会发生这种情况。尝试将其本地安装到您的项目中。在解决问题之前,您可以尝试这些步骤。请记住,此方法不是解决问题,而是另一种方法。

  1. cd进入你的项目目录。不是项目目录的 sln 目录。
  2. 然后dotnet ef找出您已正确安装实体框架。
  3. 然后使用dotnet ef migrations add "ReplaceThisWithSomeText"命令。这将产生新的迁移。
  4. 然后用于dotnet ef database update更新数据库。

迁移概述。这也会有帮助..

Windows 命令 - cd

(这适用于 EFCore 项目)

于 2020-12-24T10:40:18.950 回答
0

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

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

于 2018-03-16T10:12:56.577 回答
0

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

于 2018-12-11T15:16:15.830 回答
0

我在 VS 2019 中使用 EntityFramework 6.3.0 的现有项目遇到了这个问题。这个项目在一段时间内对它进行了一些奇怪的版本更改,但没有任何东西可以让它工作。我相信我尝试了这里列出的每一个建议,但没有运气。

最后,更新到 EntityFramework 的预发布版本(当前为 6.4.0-preview3-19553-01)确实解决了这个问题,方法是在包管理器控制台中运行它:Update-Package EntityFramework -prerelease. 我希望当这个版本在接下来的几周内发布时,它会正常工作。

于 2019-11-26T16:00:11.867 回答
0

恢复 NuGet 包对我没有帮助。

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

于 2016-08-17T13:56:07.580 回答
0

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

于 2016-12-19T10:45:19.987 回答
0

就我而言:

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

但我发现一篇文章建议使用 PM Conole 手动导入缺少的 EF 包:

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

这个解决方案解决了我的问题。

于 2019-03-11T14:58:39.547 回答
0

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

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

所以我安装了所需版本的 .NET Core 并且命令运行成功。

于 2019-08-14T19:31:44.320 回答
-1

对我来说,问题是 Nuget 版本。

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

于 2014-11-25T02:33:11.790 回答