对VS 2017中ASP.NET Core项目解决:Add-Migration : 无法将“Add-Migration”项识别为 cmdlet、函数、脚本文件或可运行程序的名称。

  • Post author:
  • Post category:其他



问题出现环境

Windows 7 x64系统,安装VS 2017社区版,EntityFramework 6.0已在安装VS时一并安装。


问题

首次在ASP.NET Core项目中使用Code First模式的Entity Framework框架,在添加EF工具并做初始化迁移(perform initial migration),执行Add-Migration Initial遇到以下错误:

PM> Add-Migration Initial


Add-Migration : 无法将“Add-Migration”项识别为 cmdlet、函数、脚本文件或可运行程序的名称。请检查名称的拼写,如果包括路径,请确保路径正确,然后再试一次。

所在位置 行:1 字符: 1

+ Add-Migration Initial

+ ~~~~~~~~~~~~~

+ CategoryInfo          : ObjectNotFound: (Add-Migration:String) [], CommandNotFoundException

+ FullyQualifiedErrorId : CommandNotFoundException

网上关于此问题,有其他环境下的解决方案,其思路具有参考意义,但环境不同解决细节也不同。

参考链接如下:


http://www.cnblogs.com/pari-Zhong/p/5339028.html

在本人这个环境下,对PowerShell的ExecutionPolicy也是执行了设置了的。之后的细节如下:

1、 编译项目。首次在项目中添加EF Core后,这一步必须做,否则都找不到后续要导入的 EntityFrameworkCore.psd1 模块。

2、找到前述文件的位置,使用Import-Module命令导入。我这里为: Import-Module C:\Users\{用户名}\.nuget\packages\microsoft.entityframeworkcore.tools\1.1.1\tools\EntityFrameworkCore.psd1

执行信息如下:

PM> Import-Module C:\Users\*\.nuget\packages\microsoft.entityframeworkcore.tools\1.1.1\tools\EntityFrameworkCore.psd1


模块“EntityFrameworkCore”中的某些导入命令的名称包含未批准的动词,这些动词可能导致这些命令名不易被发现。若要查找具有未批准的动词的命令,请使用 Verbose 参数再次运行 Import-Module 命令。有关批准的动词列表,请键入 Get-Verb。

之后问题解决,执行Add-Migration Initial  ,Update-Database这些命令都正常了。



版权声明:本文为notjusttech原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。