今天在用nuget控制台更新数据库时遇到了非常令人郁闷的错误
System.Runtime.Serialization.SerializationException: Type is not resolved for member 'Oracle.ManagedDataAccess.Client.OracleException,Oracle.ManagedDataAccess, Version=4.121.2.0, Culture=neutral, PublicKeyToken=89b483f429c47342'.
在 System.AppDomain.DoCallBack(CrossAppDomainDelegate callBackDelegate) 在 System.Data.Entity.Migrations.Design.ToolingFacade.Run(BaseRunner runner) 在 System.Data.Entity.Migrations.Design.ToolingFacade.Update(String targetMigration, Boolean force) 在 System.Data.Entity.Migrations.UpdateDatabaseCommand.<>c__DisplayClass2.<.ctor>b__0() 在 System.Data.Entity.Migrations.MigrationsDomainCommand.Execute(Action command)Type is not resolved for member 'Oracle.ManagedDataAccess.Client.OracleException,Oracle.ManagedDataAccess, Version=4.121.2.0, Culture=neutral, PublicKeyToken=89b483f429c47342'.在stackflow上看了一下,总结起来主要有下面几种情况:
1.路径问题
就是项目路径中存在 & 符号,删掉之后就好了
参考:
2..net版本问题
就是一个解决方案下有好几个项目,但是用了不同版本的.net,有的用了4.5,有的用了4,所以解决方案就是暂时卸载一个版本
参考:
然并卵,对我一点帮助没有
后来想起来在某篇文章上看到错误的原因是migrate.exe找不到对应的dll,灵机一动,把这个dll复制到migrate.exe的目录下,问题解决