我是使用MVC的新手,在使用Visual Studio 2013中有关迁移的教程时,我似乎打破了在Package Manager控制台中与EntityFramework的搭配。
我相信这是在我将EntityFramework更新到版本6.1.3时开始的,但这似乎与MVC Controller脚手架不兼容。所以我把它推回到5.0.0版本。
现在我输入命令enable-migrations
我收到以下错误:
使用“8”参数调用“CreateInstanceFrom”的异常:“无法加载文件或程序集'EntityFramework,Version = 5.0.0.0 ,Culture = neutral,PublicKeyToken = b77a5c561934e089'或其中一个依赖项。该系统找不到指定的文件。” 在D:\ ss \ CAP \ CAP_MVC_Dev_2 \ CAP_MVC \ packages \ EntityFramework.5.0.0 \ tools \ EntityFramework.psm1:431 char:31 + $ domain.CreateInstanceFrom<<<< ( + CategoryInfo:NotSpecified:(:) [],MethodInvocationException + FullyQualifiedErrorId:DotNetMethodTargetInvocation
文件EntityFramework.psm1
存在于上面描述的位置,但错误似乎出现在该文件中?如何$domain.CreateInstanceFrom
丢失,从哪里来?卸载并重新安装EntityFramework包没有任何区别。
我尝试过从头创建新项目,但这个错误仍然存在。卸载/重新安装Visual Studio 2013既没有解决问题,也没有破坏已连接的数据库并重新启动空数据库。
答案 0 :(得分:2)
所以,事实证明解决方案类似于这个
Entity Framework code first migrations throwing error
当我第一次尝试这种解决方案时,有报道称gacutil未被识别。由于我工作的环境,添加gacutil是不容易普遍认可(我相信),所以我发现文件系统中的gacutil.exe,将其复制到链接中引用的lib\net45
文件夹发布,然后运行命令
gacutil /i EntityFramework.dll
这解决了问题,我不再收到“找不到文件”错误'
答案 1 :(得分:2)
我没有安装GAC,而是采用以下解决方案(VS2013 SP5 + EF 5):
已复制(解决方案目录)\ packages \ EntityFramework.5.0.0 (整个目录) 到
C:\Program Files (x86)\Microsoft Visual Studio 12.0\Common7\IDE\CommonExtensions\Microsoft\EFTools\NuGet Packages\
NuGet Packages目录不存在,因此需要手动创建它。