实体框架迁移问题

4
我在使用EF迁移时遇到了问题,具体是无法让“Enable-Migrations”命令正常工作。当我在程序包管理器控制台中执行该命令时,会收到以下错误提示:

System.Management.Automation.PSArgumentException: 找不到类型System.Data.Entity.Migrations.MigrationsCommands: 请确保包含此类型的程序集已加载。
at System.Management.Automation.MshCommandRuntime.ThrowTerminatingError(ErrorRecord errorRecord)
找不到类型[System.Data.Entity.Migrations.MigrationsCommands]: 请确保包含此类型的程序集已加载。

在我看来,NuGet控制台无法从我的EF程序集中找到MigrationsCommands类型。我已经检查过,该程序集是最新的(4.3.1),但是在对象浏览器中,我无法找到MigrationsCommands类型或命名空间。 更新: 我仍未解决此问题,但看起来问题的根源在于我在包管理器控制台中运行“Install-Package EntityFramework”命令时出现的以下输出。错误在这里:
Unable to find type [ConnectionFactoryConfiguratorInvoker]: make sure that the assembly containing this type is loaded.
At C:\...\packages\EntityFramework.4.3.1\tools\install.ps1:36 char:39
+ [ConnectionFactoryConfiguratorInvoker] <<<< ::Invoke((Join-Path $toolsPath "EntityFramework.PowerShell.dll"), $project)
+ CategoryInfo          : InvalidOperation: (ConnectionFactoryConfiguratorInvoker:String) [], RuntimeException
+ FullyQualifiedErrorId : TypeNotFound

你的解决方案中有多少个项目? - Ladislav Mrnka
由于这是一个虚拟测试项目,我有两个项目,两个项目都引用了EF(一个控制台测试工具和包含dbcontext和domain的项目)。我尝试将包管理器控制台指向这两个项目。 - jdscolam
Ladislav,感谢您的评论。我已经在下面发布了答案。 - jdscolam
2个回答

2

经过几个小时的搜索,我找到了解决方案。 关键点位于Phil Haack在针对Reflector 6.5回复“Chris”时的此处。 我安装了Reflector(奇怪的是版本为7.0),并在VS2010中启用了Reflector插件。 在研究NuGet FAQ之后,我卸载了Reflector并禁用了VS2010 Add-In。 这似乎已经解决了问题,因为现在我可以顺利地执行“Install-Package EntityFramework”和“Enable-Migrations”。


0

禁用VS2010中的插件 (工具-选项-环境-插件/宏安全性/允许加载插件组件) 如果在VS2010中安装了ReSharper,请禁用它 (工具-选项-ReSharper-暂停)

重新启动VS2010,问题将得到解决。


Zork,我把Resharper保持启用状态,没有出现这个问题。问题似乎只与Reflector有关,而与Resharper无关。 - jdscolam

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接