我有几个类文件。但是现在我添加了新的模型类并尝试键入add-migration InitialCreate。但我收到以下错误。
PM> add-migration InitialCreate
Exception calling "LoadFrom" with "1" argument(s): "Could not load file or assembly 'file:///C:\Users\user\Documents\Visual Studio 2013\Pro
jects\DigitalHealthWebPrev\packages\EntityFramework.6.1.3\tools\EntityFramework.PowerShell.Utility.dll' or one of its dependencies. Operati
on is not supported. (Exception from HRESULT: 0x80131515)"
At C:\Users\user\Documents\Visual Studio 2013\Projects\DigitalHealthWebPrev\packages\EntityFramework.6.1.3\tools\EntityFramework.psm1:780 c
har: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 C:\Users\user\Documents\Visual Studio 2013\Projects\DigitalHealthWebPrev\packages\EntityFramework.6.1.3\tools\EntityFramework.psm1:781 c
har: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:///C:\Users\user\Documents\Visual Studi
o 2013\Projects\DigitalHealthWebPrev\packages\EntityFramework.6.1.3\tools\EntityFramework.PowerShell.dll' or one of its dependencies. Opera
tion is not supported. (Exception from HRESULT: 0x80131515)"
At C:\Users\user\Documents\Visual Studio 2013\Projects\DigitalHealthWebPrev\packages\EntityFramework.6.1.3\tools\EntityFramework.psm1:809 c
har:31
+ $domain.CreateInstanceFrom <<<< (
+ CategoryInfo : NotSpecified: (:) [], MethodInvocationException
+ FullyQualifiedErrorId : DotNetMethodException
PM>
答案 0 :(得分:15)
使用程序包管理器,您需要重新安装Entity Framework:
Uninstall-Package EntityFramework -Force
然后为每个项目安装它:
Install-Package EntityFramework
然后别忘了重新启动工作室。
答案 1 :(得分:3)
改用命令EntityFramework6\add-migration {migration name}
。 Microsoft更改了命令的名称。
答案 2 :(得分:1)
今天我的情况略有不同,我在这里详细说明可能有助于某人的情况。该错误引用了我的一个程序集,而包含EF DbContext的程序集依赖于该程序集 我解决了它将引用的程序集设置为“Copy Local”“true”,因此它在构建迁移时会生成本地副本,因此能够找到它。
答案 3 :(得分:1)
您需要重新安装Entity Framework:
答案 4 :(得分:1)
确保VS处于管理员模式
答案 5 :(得分:1)
只需重新启动Visual Studio并清理解决方案,然后重新构建即可。
答案 6 :(得分:0)
(解决方案文件夹)/packages/EntityFramework.6.1.3/tools/中的dll丢失了。
我会尝试的事情:
如果这样不起作用,您可以重试上述解决方案之一,即完全删除并重新安装EF,但请确保为每个项目安装相同的版本。
似乎还有一些版本不包含这些文件。例如,在编写此答案时,6.3.0实际上不包括6.1.3所需要的dll。我也成功地将dll从6.1.3的较旧版本复制到了6.3.1的较新版本中(可能会发出警告,但通常会按预期运行)。
答案 7 :(得分:0)
我去了“为解决方案管理Nuget软件包...”并更新了我所有的软件包。这对我有用。
然后我遇到另一个错误Cannot bind argument to parameter 'Path' because it is null
。
在Package Manager控制台中运行任何EF命令之前,将另一个项目设置为我的Web应用程序以外的启动项目对我来说是有效的。
答案 8 :(得分:0)
在我的情况下,它是主项目和包含DbContext的项目之间不同的实体框架版本。 我刚刚将两个项目中的软件包的版本更新为v6.4.4