术语“更新数据库”不被识别为cmdlet的名称

问题描述:

我正在使用EF5 beta1,而我之前可以运行“更新数据库”。现在我关闭了Visual Studio,但无法运行它。我得到以下错误:术语“更新数据库”不被识别为cmdlet的名称

The term 'Update-Database' 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:16 + Update-Database <<<< -verbose + CategoryInfo : ObjectNotFound: (Update-Database:String) [], CommandNotFoundException + FullyQualifiedErrorId : CommandNotFoundException

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

任何人都可以帮助吗?

+2

昨天我有一个不同的cmdlet类似的问题,并完整的系统重新启动帮助... – nemesv 2012-03-13 07:01:01

+11

重新启动是没有必要的。执行包恢复后,我们不会运行init.ps1脚本(这就是为什么找不到该命令)。只需退出并重新启动VS(或卸载/重新加载项目)。 – RickAndMSFT 2013-07-17 01:45:12

+0

今天我发生了这种事。我为团队项目打开了一个回购协议,并且需要恢复一些软件包。恢复后,'update-database'和'add-migration'命令将不起作用。重新启动Visual Studio修复了它。 – jmbertucci 2015-02-09 15:17:38

最近我一直有这个问题多次。我发现有效的解决方案是关闭程序包管理器控制台,关闭Visual Studio,然后重新打开它们。重启也在大多数时间都有效,但并非总是如此。

+7

通常你只需要退出重启VS.在原始问题中查看我的评论。在极少数情况下,您可能需要退出/重新启动VS两次。 – RickAndMSFT 2013-07-17 01:46:23

+1

刚刚面临问题并重新启动Visual Studio,并且事情再次运行。谢谢。 – Shubh 2015-05-28 10:13:43

+1

真棒......... – Unbreakable 2017-05-14 01:33:14

我有这个相同的问题,它的起源是我的路径名称,我在我的路径上有一个直接括号的目录名称,如下所示:C:\[PROJ]\TestApp

当我删除了支架,以C:\PROJ\TestApp,它开始工作得很好......

+0

通常你只需要退出重启VS.在原始问题中查看我的评论。 – RickAndMSFT 2013-07-17 01:45:54

+0

@RickAndMSFT这更接近更好的解决方案,即“重启”VS. – ProfK 2017-05-22 13:36:03

+0

@Antonio即使我有同样的问题,你的解决方案也适用于我。 – User5590 2018-02-23 09:11:34

这个问题似乎当您直接从资源管理器打开该项目的情况发生。先尝试开始VS然后打开项目 - 为我工作。我猜这是关于访问路径。

重新安装固定这个问题上的NuGet包我

即包管理器执行

Install-Package EntityFramework -Version 5.0.0 

+1

这适用于我。我工作的项目使用EF和我自动假定包已安装。事实证明,事实并非如此。开发人员只是直接引用EF dll。 EntityFramework软件包必须安装在Update-Database cmd工作的项目中。 – stack247 2014-06-18 23:09:33

+0

这个答案似乎不太可能帮助,但它拯救了我的一天。谢谢, – 2015-08-14 05:24:18

+0

今天使用Fluent API摔跤FK的,等等,EntityFramework不知何故被抛弃。在这些方面实际上对我有效的是另一个'Update-Package -Reinstall EntityFramework'。 – rdev5 2015-11-19 20:58:24

只需重新打开Visual Studio是为我工作

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

Value cannot be null.

Parameter name: path1

我不知道是什么原因导致还没有,但似乎不顺心的那些中断的特定模块,如EF PowerShell的扩展的注册PowerShell控制台的启动过程中出错。但是,您可以手动加载它:

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

确保用任何当前版本的实体框架替换6.1.1。

+3

谢谢!只有解决方案,为我工作。但是,对于任何使用VS 2015的EF 6.1.3的用户,EntityFramework.psm1中存在一个错误,这里有一个可用的补丁http://*.com/a/30062684/1267778。 – parliament 2015-06-10 17:39:50

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

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

如果您使用实体框架:

错误消息: “错误信息(从PMC更新-database命令): 术语‘更新的数据库的’无法识别的名称的cmdlet,函数,脚本文件或可操作的程序,检查名称的拼写,或是否包含一个路径,验证路径是否正确,然后再试一次。“

解决方案: ” 退出Visual Studio中。重新打开项目,然后再试一次“

欲了解更多信息,请访问:。Advanced Entity Framework 6 Scenarios for an MVC 5 Web Application (12 of 12)

希望这有助于...

+0

重新启动10/10,每次工作 – AlbatrossCafe 2016-09-26 19:12:02

+0

@AlbatrossCafe当然:) – 2016-09-28 19:37:38

+0

VS开发团队应该给这个问题刷新VS按钮:) – 2016-11-21 09:04:02

对我来说,问题是的NuGet版本

  1. 卸载Nuget Package Manager
  2. 重新启动Visual Studio。
  3. 安装了新版本的Nuget Package Manager。
  4. 然后再次重新启动Visual Studio。
+1

这是我的情况,但我只需要更新nuget的扩展和更新 – Oak 2015-09-10 21:12:07

+0

这工作对我来说,卸载nuget包管理器,重新安装nuget包管理器,重启Visual Studio,卸载EntityFramework,重新安装EntityFramework – 2016-10-12 04:10:09

当EF工具安装不正确,你将收到此错误。

尝试NuGet包管理器 //卸载以下命令并安装EF

Update-Package "EntityFramework" -reinstall 

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

(Note : no need to create the new Project in the same solution or same location.)

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

Update-Package "EntityFramework" 

一旦做到这一点,chcek你原来的项目,您可以删除新建项目。

在我的情况,我做了以下内容: - 重新启动Visual Studio的 - - 运行“更新DATABSE”

恢复的NuGet恢复点击缺少的NuGet包上包管理器控制台 的顶部的“恢复”按钮包没有帮助我。所以,我不得不重新安装包管理器 - https://visualstudiogallery.msdn.microsoft.com/4ec1526c-4a8c-4a84-b702-b21a8f5293ca 也许它可以帮助别人

如果其他的答案不工作(VS 2017):清空缓存的NuGet,重启VS,然后恢复包。

我发现它是由于一个损坏的包。当它已经安装时,我已经安装了Automapper。只有当我试图安装另一个软件包时,这个软件包才发现是错误的。

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

您可以再重新安装automapper。问题出现在版本5.4上,我现在很乐意在6.0上。

对于我来说,原来的EntityFramework核心并没有对我的项目安装(因为我开始用空白项目)。所以安装EntityFramework包解决了这个问题。有时如果EntityFramework安装失败,则尝试逐个安装单个软件包

E.g.

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

我解决了更新程序包管理器控制台。

我没有在Package Manager Console中获取Update-Database。然后我重新开始几次。同时重新启动Windows。

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

只需重新启动Visual Studio,它就能解决问题。适用于我。