我试图在一个新项目中运行命令'Enable-Migrations',我收到了消息:
PM> Enable-Migrations
The term 'Enable-Migrations' 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, verif
y that the path is correct and try again.
At line:1 char:18
+ Enable-Migrations <<<<
+ CategoryInfo : ObjectNotFound: (Enable-Migrations:String) [], CommandNotFoundException
+ FullyQualifiedErrorId : CommandNotFoundException
但是在所有其他项目中,命令运行得很好。
为什么会这样?
顺便说一下,我正在使用VS2010 Professional SP1
编辑:我重新安装命令:Install-Package EntityFramework -IncludePrerelease,问题消失了。
只是简单地重新启动Visual Studio为我工作。无需安装包等
我有同样的问题,我尝试了其他人提供的大部分解决方案,但它适用于我以下步骤。我有VS 2017。
脚步:
Install-Package EntityFramework -IncludePrerelease
然后创建一个类
public class MyDBContext : DbContext { public MyDBContext() { } }
并在最后执行
Enable-Migrations -EnableAutomaticMigrations
什么对我不起作用:
:重启VS.
:仅“Enable-Migrations”命令,它不带-EnableAutomaticMigrations。
:恢复或更新Nuget Package Manager。
我最初的错误是
/ *术语“启用 - 迁移”不会被识别为cmdlet,函数,脚本文件或可操作程序的名称。检查名称的拼写,或者如果包含路径,验证路径是否正确并再试一次。行:1 char:1 + enable-migration + ~~~~~~~~~~~~~~ ~~ + CategoryInfo:ObjectNotFound :( enable-migration:String)[],CommandNotFoundException * /
我对VS 2019 Preview,.Net Core和EntityFramework Core也有同样的问题。
原来我必须通过NuGet Microsoft.EntityFrameworkCore.Tools
和Microsoft.EntityFrameworkCore.Design
安装。一旦完成,它就像一个魅力。
我有同样的问题,我发现这是因为项目路径中的一些字符,如[或]我纠正项目路径,它工作正常!
Enable-Migrations -EnableAutomaticMigrations
由于我已经有了迁移文件夹,因此我重新启动了Visual Studio并在包管理器控制台中运行了Update-Database -verbose。这对我有用
我尝试了所有上述建议,但没有任何对我有用,然后我更新了Nuget Package Manager
,它的工作..
在VS 2013中,尝试安装UPDATE 1(RC1)并解决问题。
我在解决方案中有多个项目,但我有正确的默认项目集,所以我认为它应该工作。
最后,我不得不在命令中添加-StartupProject MyProjectName
选项
这些解决方案都不适合我。我的解决方案是删除packages/EntityFramework.6.1.3
和Restore NuGet Packages
我注意到packages/EntityFramework.6.1.3/tools/EntityFramework.psd1
丢失了,所以这可能是原因。它是如何被删除的,虽然我没有线索。
我重新安装了命令:Install-Package EntityFramework -IncludePrerelease,问题消失了。
检查配置部分“entityFramework”是否存在并在.config文件中描述
<configSections>
<!-- For more information on Entity Framework configuration, visit http://go.microsoft.com/fwlink/?LinkID=237468 -->
<section name="entityFramework" type="System.Data.Entity.Internal.ConfigFile.EntityFrameworkSection, EntityFramework, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" requirePermission="false"/></configSections>
<entityFramework>
<defaultConnectionFactory type="System.Data.Entity.Infrastructure.SqlConnectionFactory, EntityFramework"/>
<providers>
<provider invariantName="System.Data.SqlClient" type="System.Data.Entity.SqlServer.SqlProviderServices, EntityFramework.SqlServer"/>
</providers>
</entityFramework>
以管理员身份运行vs = >> open opneproject
enabele-migration
add-migration migrationName
update-database
检查项目是否在“解决方案资源管理器”窗口中打开。
这可能是您的问题的原因。
发生此问题是因为我们没有安装Entity Framework。请使用以下命令安装Entity Framework。
Install-Package EntityFramework -IncludePrerelease
安装后,在包管理器控制台默认项目下拉列表中选择项目。
确保项目中至少有一个类继承自数据上下文,否则请使用以下类:
public class MyDbContext : DbContext
{
public MyDbContext()
{
}
}
如果我们不这样做,我们将收到另一个错误:
No context type was found in the assembly
完成这些事后你就可以跑了
enable-migrations
使用管理员权限重新启动Visual Studio为我解决了这个问题。
使您以管理员身份运行Visual Studio。
首先“Install-Package EntityFramework -IncludePrerelease”然后以管理员身份重新启动Visual Studio一起为我工作。
在Visual Studio 2012中,我遇到了同样的错误。必须卸载NuGet(工具>扩展和更新>已安装>所有:NuGet包管理器:卸载按钮)。然后关闭Visual Studio。然后重新打开Visual Studio并重新安装NuGet(工具>扩展和更新>在线> Visual Studio库:NuGet包管理器:下载按钮)。然后在以下窗口中:单击“安装”按钮,然后单击“关闭”按钮然后关闭并重新打开Visual Studio。
为我修复此症状的原因(VS2013)是卸载然后使用Nuget重新安装EF包。 csproj文件的区别改变了这个......
<Reference Include="EntityFramework">
<HintPath>..\packages\EntityFramework.6.1.1\lib\net45\EntityFramework.dll</HintPath>
</Reference>
......进入这...
<Reference Include="EntityFramework, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089, processorArchitecture=MSIL">
<SpecificVersion>False</SpecificVersion>
<HintPath>..\packages\EntityFramework.6.1.1\lib\net45\EntityFramework.dll</HintPath>
</Reference>
我还不完全理解为什么,但它至少起作用了。
在.NET Core中,通过在包管理器控制台中输入以下内容,我能够达到接受答案中描述的相同分辨率:
Install-Package EntityFramework.Core -Pre