术语“更新 - 数据库”未被识别为cmdlet的名称
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了术语“更新 - 数据库”未被识别为cmdlet的名称相关的知识,希望对你有一定的参考价值。
我正在使用EF5 beta1,而我之前能够运行“更新数据库”。现在我关闭了Visual Studio,我无法让它运行。我收到以下错误:
术语“更新 - 数据库”未被识别为cmdlet,函数,脚本文件或可操作程序的名称。检查名称的拼写,或者如果包含路径,请验证路径是否正确,然后重试。在行:1 char:16 + Update-Database <<<< -verbose + CategoryInfo:ObjectNotFound:(Update-Database:String)[],CommandNotFoundException + FullyQualifiedErrorId:CommandNotFoundException
我试图重新安装EF5b1并且虽然成功(已安装),但“更新数据库”仍然无效。
谁能帮忙???
我最近多次遇到过这个问题。我发现有效的解决方案是关闭软件包管理器控制台,关闭Visual Studio然后重新打开它们。重启也在大部分时间都有效,但并非总是如此。
当您直接从文件资源管理器中打开项目时,似乎会发生此问题。首先尝试启动VS然后打开项目 - 为我工作。我猜这是关于访问路径。
我解决了卸载并重新安装“Microsoft.EntityFrameworkCore”和“Microsoft.EntityFrameworkCore.Tools”
对于使用.Net Core和EntityFrameworkCore的任何人:
您需要安装Microsoft.EntityFrameworkCore.Tools
软件包才能解决此问题。
在这里阅读更多:https://docs.microsoft.com/en-us/ef/core/miscellaneous/cli/powershell
在我的例子中,我做了以下操作: - 通过单击Package Manager控制台顶部的“恢复”按钮恢复丢失的NuGet包 - 重新启动Visual Studio - 运行“update-databse”
恢复NuGet包对我没有帮助。所以我不得不重新安装包管理器 - https://visualstudiogallery.msdn.microsoft.com/4ec1526c-4a8c-4a84-b702-b21a8f5293ca可能会帮助某人
如果其他答案不起作用(VS 2017):清除NuGet缓存,重新启动VS,然后恢复软件包。
我发现这是由于包装腐败造成的。我已经安装了Automapper。当我尝试安装另一个软件包时,很明显这个软件包已经损坏了。
删除损坏的包解决了这个问题。
然后,您可以重新安装automapper。问题是版本5.4,我现在很高兴6.0。
对我来说,事实证明我的项目上没有安装EntityFramework核心(因为我从空白项目开始)。因此,安装EntityFramework包解决了这个问题。有时,如果EntityFramework安装失败,则尝试逐个安装单个软件包
EG
Microsoft.EntityFrameworkCore.Design
Microsoft.EntityFrameworkCore.SqlServer
Microsoft.EntityFrameworkCore.SqlServer.Design
Microsoft.EntityFrameworkCore.Tools
我通过更新包管理器控制台解决了
我没有在软件包管理器控制台中获得Update-Database。然后我重启几次。还重启Windows。
然后我从nuget下载新的,然后它就解决了。
我在Visual Studio 2015中遇到此问题,并通过更新Nuget的版本来解决它。
工具 - >扩展和更新 - >更新 - > Visual Studio库
如果您使用实体框架:
错误消息:“错误消息(来自PMC中的Update-Database命令):术语”更新 - 数据库“未被识别为cmdlet,函数,脚本文件或可操作程序的名称。请检查名称的拼写,或者如果包含路径,请验证路径是否正确,然后重试。“
解决方案:“退出Visual Studio。重新打开项目并重试。”
欲了解更多信息,请访问:Advanced Entity Framework 6 Scenarios for an MVC 5 Web Application (12 of 12)
希望这可以帮助...
对我来说简单的解决方法是确保更新和数据库之间存在差异,如下所示:update-database
并使用小写。这可能是巧合,但是当我在Packet Manager Console中执行此操作时,数据库实际更新了,我得到了完成消息而不是not recognized as the name of a cmdlet, function, script file
错误。
在用Visual Studio 2015而不是2017年意外打开Visual Studio解决方案后,我开始遇到同样的问题。该项目在发生事故之前工作得很好。这是一个使用EF 5.0而不是EF Core的旧项目。
我尝试了所有建议 - 重新启动Visual Studio无数次,清理NuGet缓存,删除包文件夹中的所有内容,重新安装项目的EF 5 - 没有好处,无法识别添加迁移。如果我将EF升级到6,它开始识别命令,但我还不想升级。所以,一旦我回到EF 5,问题又回来了。
最终拯救我的唯一事情就是做到以下几点:
- 关闭Visual Studio
- 从packages文件夹中删除所有内容
- 删除解决方案根目录中的.vs文件夹。此文件夹通常是隐藏的,您必须打开“显示隐藏的文件和文件夹”设置或选中“文件夹视图”选项卡中的“隐藏的项目”
- 启动Visual Studio并打开您的解决方案。它将要求恢复NuGet包,同意它。
现在EF命令终于开始工作了。
就我而言:
- 重新加载项目没有帮助
- 重启VS没有帮助
- 重启电脑没有帮助
- 重新安装IF没有帮助
但是我找到了一个article,其中建议使用PM Conole手动导入缺少的EF包:
Import-Module .packagesEntityFramework.X.X.X oolsEntityFramework.psm1
这个解决方案解决了我的问题。
对我来说问题是Nuget版本。
我删除并重新安装了Nuget,然后重新启动Visual Studio,然后全部开始工作。
有时当我加载VS时,我在包管理器控制台中看到了这个:
值不能为空。
参数名称:path1
我不知道是什么导致这一点,但似乎在Powershell控制台启动期间出现问题,这会中断特定模块的注册,例如EF powershell扩展。您可以手动加载它:
Import-Module .packagesEntityFramework.6.1.1 oolsEntityFramework.psm1
确保将6.1.1替换为当前版本的Entity Framework。
重新安装nuget包为我解决了这个问题
即,执行
Install-Package EntityFramework -Version 5.0.0
在包管理器中
只需重新启动Visual Studio,它就能解决问题。适合我。
如果未正确安装EF工具,您将收到此错误。
在Nuget包管理器中尝试以下命令//卸载并安装相同版本的EF
Update-Package "EntityFramework" -reinstall
如果你仍然面临同样的问题。创建一个新的Web项目并在nuget中运行以下命令。
(注意:无需在同一解决方案或相同位置创建新项目。)
//这将更新EF到最新版本(包括工具)//如果要使用特定版本,请使用-version
标志。
Update-Package "EntityFramework"
完成后,检查原始项目,然后删除新创建的项目。
我有同样的问题,它的起源是我的路径名,我在我的路径上有一个直括号的目录名称,如下所示:C:[PROJ]TestApp
。
当我删除括号,到C:PROJTestApp
,它开始工作得很好......
Just ReOpen visual studio对我来说很有用
对我来说问题是Nuget版本。
- 卸载Nuget Package Manager。
- 重新启动Visual Studio。
- 安装了新版本的Nuget Package Manager。
- 然后再次重新启动Visual Studio。
以上是关于术语“更新 - 数据库”未被识别为cmdlet的名称的主要内容,如果未能解决你的问题,请参考以下文章
PowerShell 和 TFS |术语“tfpt”未被识别为 cmdlet 的名称
PowerShell 该术语未被识别为 cmdlet 函数脚本文件或可运行程序
ng :术语“ng”未被识别为 cmdlet 的名称,函数 Visual Studio 代码终端
ssh:术语“ssh”未被识别为 cmdlet、函数、脚本文件或可运行程序的名称