我在我的.Net 4.0类库项目中使用nuget安装的Entity framework 4.3.1。在情况下,当我在PM控制台中调用“启用 - 迁移”命令时,我收到以下异常:
使用“1”参数调用“LoadFrom”的异常:“Nelzenačístsumbornebosestavenífile:/// D:\ 用户\ DvoracekR \ Documents \ Visual Studio 2010 \ Projects \ WebCameras \ packages \ EntityFramework.4.3.1 \ to ols \ EntityFramework.PowerShell.Utility.dll nebo jeden zjejichzávislýchprvků。 Systémnemůženalé zttuvedenýsorbor。“ 在D:\ Users \ DvoracekR \ Documents \ Visual Studio 2010 \ Projects \ WebCameras \ packages \ EntityFramework.5。 0.0-rc \ tools \ EntityFramework.psm1:393 char:62 + $ utilityAssembly = [System.Reflection.Assembly] :: LoadFrom<<<< ((Join-Path $ toolsPath Entity Framework.PowerShell.Utility.dll)) + CategoryInfo:NotSpecified:(:) [],MethodInvocationException + FullyQualifiedErrorId:DotNetMethodException
您无法在空值表达式上调用方法。 在D:\ Users \ DvoracekR \ Documents \ Visual Studio 2010 \ Projects \ WebCameras \ packages \ EntityFramework.5。 0.0-rc \ tools \ EntityFramework.psm1:394 char:50 + $ dispatcher = $ utilityAssembly.CreateInstance<<<< ( + CategoryInfo:InvalidOperation:(CreateInstance:String)[],RuntimeException + FullyQualifiedErrorId:InvokeMethodOnNull
使用“8”参数调用“CreateInstanceFrom”的异常:“Typ System.Data.Entity.Migrations.En ableMigrationsCommandzesestaveníEntityFramework.PowerShell,Version = 4.3.1.0,Culture = neutral,P ublicKeyToken = b77a5c561934e089nelzenačíst。“ 在D:\ Users \ DvoracekR \ Documents \ Visual Studio 2010 \ Projects \ WebCameras \ packages \ EntityFramework.5。 0.0-rc \ tools \ EntityFramework.psm1:418 char:31> + $ domain.CreateInstanceFrom<<<< ( + CategoryInfo:NotSpecified:(:) [],MethodInvocationException + FullyQualifiedErrorId:DotNetMethodException
答案 0 :(得分:25)
我解决了上述问题。
现在正确启用了迁移。
答案 1 :(得分:2)
我知道这是一个老问题,已经有了一个公认的答案,但我有这个问题,并且认为我会分享我为解决它而做的事情。
我的解决方案是源代码控制,我弄乱了我的本地项目。 我决定从Source Control重新开始,所以我创建了一个新文件夹并检查了SVN的代码。
当我这样做时,我无法再创建迁移。我得到了上面列出的相同错误。我尝试了Uninstall-Package EntityFramework
,但在EntityFramework中收到了关于丢失文件/引用的类似消息。
我回到旧文件夹并查看$Project\packages\EntityFramework.6.0.2\
并将其与我的新文件夹进行比较。有几个DLL / Xml文件丢失,因为它们不在源代码管理中。它们位于\tools\
,\lib\net40
和\lib\net45\
目录中。
我刚刚将这些文件复制到我的新项目,关闭/重新打开Visual Studio,并进行了重建。在那之后,一切都很好。
答案 2 :(得分:1)
重新安装NuGet包对我来说不起作用。将项目从网络驱动器移动到本地驱动器的工作是什么。运行比较表明,除obj
和bin
目录外,所有文件都是二进制相同的。
如果我没记错的话,我在Update-Database
的最后一次尝试是在我将项目移动到网络驱动器之前。
答案 3 :(得分:0)
我通过向他发送项目与大学分享项目时遇到了这个问题。当他把它发回给我时,我发现当我尝试添加迁移时,返回的项目给了我这个错误。我通过使用原始项目中的文件夹覆盖返回项目中的packages \ EntityFramework.5.0.0文件夹来解决问题。
如果我只是在我自己的机器上移动项目,我就不会遇到问题。
答案 4 :(得分:0)
在同一台物理计算机上使用不同的VM时,这个问题开始发生在我身上。
VMWare Fusion默认与OS X共享配置文件目录,这在使用安装了Visual Studio的多个VM时会产生很多问题,实际上我安装的几乎所有应用程序都开始表现得很奇怪。那个时候应该响铃。
通过关闭文件夹共享来解决问题,由于我没有选择不共享配置文件夹,只添加/删除其他文件夹,因此不太明显。
希望我的愚蠢帮助其他人:)
答案 5 :(得分:0)
我在Visual Studio 2017上打开的Visual Studio 2015中的项目存在同样的问题。以下是我解决它的方法:
为了分享我的经验,我尝试了这一步:
Uninstall-Package EntityFramework -Force
然后为每个项目安装它:
Install-Package EntityFramework
但是对我不起作用。所以我猜我必须手动卸载它,包括它的依赖关系而不使用force并再次安装它才能工作。但很高兴它做到了。