我在EF迁移方面遇到问题,特别是在使“启用迁移”命令起作用时。当我在程序包管理器控制台中执行命令时,出现以下错误:


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


在我看来,NuGet控制台无法从我的EF程序集中找到MigrationsCommands类型。我已经检查过了,该程序集是最新的程序集(4.3.1),并且在对象浏览器中无法找到MigrationsCommands类型或名称空间。

更新:我仍然没有解决方案,但是当我在Package Manager控制台中运行“ 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

最佳答案

经过几个小时的搜索,我找到了解决方案。他们的关键位于Phil Haack对“ Chris”关于Reflector 6.5的回复中的Here。我安装了Reflector(足够奇怪的是7.0版),并且在VS2010中启用了Reflector加载项。研究NuGet FAQ后,我卸载了Reflector并禁用了VS2010加载项。这似乎已经解决了问题,因为现在我可以同时“安装软件包EntityFramework”和“启用迁移”了。

08-27 22:08