EF迁移:无法加载文件或程序集EntityFramework,版本= 6.0.0.0

时间:2016-09-23 08:36:38

标签: powershell entity-framework-6 ef-migrations

我一直在试图让EF通过powershell运行我的迁移,但是没有在哪里。我可以使用包管理器控制台通过visual studio运行它们,但是当我使用PowerShell脚本运行它时,我收到错误:

  

migrate.exe:在行:1 char:1   +& " C:\发展\ Ef中\工具\ migrate.exe" " TestApp.Data.dll" /连接...   + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ ~~~~~~~~~~~~~~~~~~~~       + CategoryInfo:NotSpecified:(:String)[],RemoteException       + FullyQualifiedErrorId:NativeCommandError未处理的异常:System.IO.FileNotFoundException:无法加载文件或   assembly' EntityFramework,Version = 6.0.0.0,Culture = neutral,   公钥= b77a5c561934e089'或其中一个依赖项。该   系统找不到指定的文件。在   System.Data.Entity.Migrations.Console.Resources.EntityRes..ctor()
  在   System.Data.Entity.Migrations.Console.Resources.EntityRes.GetLoader()   在   System.Data.Entity.Migrations.Console.Resources.EntityRes.GetString(字符串   name,Object [] args)at   System.Data.Entity.Migrations.Console.Program.WriteError(字符串   消息)   System.Data.Entity.Migrations.Console.Program.Main(String [] args)

我正在运行的修改过的脚本(由章鱼生成)是:

& "C:\Development\Ef\Tools\migrate.exe" "TestApp.Data.dll"  /connectionProviderName="System.Data.SqlClient" /startupConfigurationFile="C:\Development\FeatureBranch\TestApp\TestApp.Root\TestApp.WebApi\web.config" /startUpDirectory="C:\Development\FeatureBranch\TestApp\TestApp.Root\TestApp.WebApi\bin" /Verbose

我已经谷歌了很多,我知道这是一个常见的问题,所以我做了以下检查:

通过nuget安装的EF版本是6.1.3。这在解决方案中的所有package.config文件中都是相同的,即:

  

< package id =" EntityFramework"版本=" 6.1.3" targetFramework =" net45" />

我检查了所有的网络和应用配置,它们都是一致的:

  

< section name =" entityFramework" type =" System.Data.Entity.Internal.ConfigFile.EntityFrameworkSection,EntityFramework,Version = 6.0.0.0,Culture = neutral,PublicKeyToken = b77a5c561934e089" requirePermission ="假" />

这看起来有点奇怪,虽然我会假设nuget会正确设置它?无论哪种方式,改变这些值都没有区别。

我已经检查过没有旧版本的ef。我使用的migrate.exe是nuget下载的我的packages文件夹中的版本,它声明它的版本是6.1.3-40302。我正在运行.net 4.5,它与软件包配置相匹配。

任何建议都将受到赞赏,我会尝试,也许我错过了一些明显的东西。

1 个答案:

答案 0 :(得分:1)

所以,如果其他人有同样的问题,我设法解决了这个问题。八达通的剧本并不好,所以我从头开始编写。至少对我来说关键问题是脚本需要将migrate.exe复制到TestApp.Data.dll所在的文件夹中并从那里执行。