13

我正在尝试在我的 Visual Studio Web Express 2012 中启用 Code First。从我目前阅读的内容来看,我必须使用包管理器控制台和命令 Enable-Migrations。当我这样做时,我收到以下错误。

Exception calling "LoadFrom" with "1" argument(s): "Could not load file or assembly 'file:///E:\Working\wingtoysdl\C#\packages\EntityFramework.5
.0.0\tools\EntityFramework.PowerShell.Utility.dll' or one of its dependencies. Operation is not supported. (Exception from HRESULT: 0x80131515)"
At E:\Working\wingtoysdl\C#\packages\EntityFramework.5.0.0\tools\EntityFramework.psm1:398 char:62
+     $utilityAssembly = [System.Reflection.Assembly]::LoadFrom <<<< ((Join-Path $toolsPath EntityFramework.PowerShell.Utility.dll))
    + CategoryInfo          : NotSpecified: (:) [], MethodInvocationException
    + FullyQualifiedErrorId : DotNetMethodException

You cannot call a method on a null-valued expression.
At E:\Working\wingtoysdl\C#\packages\EntityFramework.5.0.0\tools\EntityFramework.psm1:399 char:50
+     $dispatcher = $utilityAssembly.CreateInstance <<<< (
    + CategoryInfo          : InvalidOperation: (CreateInstance:String) [], RuntimeException
    + FullyQualifiedErrorId : InvokeMethodOnNull

Exception calling "CreateInstanceFrom" with "8" argument(s): "Could not load file or assembly 'file:///E:\Working\wingtoysdl\C#\packages\EntityF
ramework.5.0.0\tools\EntityFramework.PowerShell.dll' or one of its dependencies. Operation is not supported. (Exception from HRESULT: 0x80131515
)"
At E:\Working\wingtoysdl\C#\packages\EntityFramework.5.0.0\tools\EntityFramework.psm1:431 char:31
+     $domain.CreateInstanceFrom <<<< (
    + CategoryInfo          : NotSpecified: (:) [], MethodInvocationException
    + FullyQualifiedErrorId : DotNetMethodException

如您所见,这是一个非常大的错误,因此很难通过 Google 搜索和排除故障。有人对我如何解决这个问题有任何想法吗?

4

7 回答 7

29

我已经两次遇到这个问题了。两次我都必须卸载实体框架,然后为解决方案中的每个项目重新安装它。我花了一段时间才弄清楚第二次这样做的一件事是,我必须在重新安装实体框架后重新启动 Visual Studio (2012)(或者我继续收到“无法加载文件或程序集” [路径]\packages\EntityFramework.5 .0.0\tools\EntityFramework.PowerShell.Utility.dll'”错误)。

要进入包管理器控制台,请转到:工具 -> 库包管理器 -> 包管理器控制台

在包管理器中为每个项目卸载实体框架(我从包管理器控制台顶部的默认项目下拉列表中选择了每个项目):
Uninstall-Package EntityFramework -Force

然后为每个项目安装它:
Install-Package EntityFramework

此时尝试运行 Enable-Migrations 命令仍然出现错误,直到我关闭并重新启动 Visual Studio。然后它成功了,Update-Database 命令也是如此(在 Migrations.Configuration 文件中将 AutomaticMigrationsEnabled 设置为 true 之后)。

于 2013-02-21T04:14:00.640 回答
4

在网络驱动器上使用项目时,在两台不同的机器上遇到了同样的问题。这个答案为我解决了这个问题。

于 2014-01-30T08:57:55.563 回答
3

这可能是一个迟到的答案,但这似乎是一个权限/访问问题。确保您的项目没有从映射驱动器或类似驱动器打开。

如果您在公司网络上并登录到域,那么您的用户配置文件很可能实际上并不位于您的本地计算机上,而是位于服务器上。这将导致同样的问题。

尝试将项目复制到本地 c: 并重试。

于 2014-03-07T22:59:21.647 回答
2

我的问题是由于我的解决方案中的某些项目未更新到与其他项目相同的版本引起的。当我确保所有人都在同一个 EF 版本上时,它就开始工作了。

于 2019-10-15T17:58:05.787 回答
1

所以我有一段时间遇到同样的问题,我正在解压一个工作项目并在尝试启用迁移时遇到错误。它只是通过使用 7-Zip 而不是 Windows 10 的默认解压缩器来修复的

于 2018-03-07T13:31:29.287 回答
1

我也遇到了同样的问题,所以我开始检查可能出现的问题,我发现以某种方式安装了 2 个不同版本的实体框架。

要确认我转到工具> NuGet 包管理器解决方案> 管理 NuGet 包> 合并。

看看下面的图片。

在此处输入图像描述

在这张图片中你可以清楚地看到安装了不同的版本

在此处输入图像描述

在这张照片中,我同意将实体框架从 6.2.0 更新到 6.4.4

于 2021-04-05T11:20:25.810 回答
0

我有同样的问题,在我的情况下是网络驱动器问题。当我在本地驱动器中复制我的项目时,它工作正常。

于 2020-01-07T16:20:56.560 回答