EF 6.13 添加迁移在 VS2017 上抛出异常,Microsoft.Build.Framework

EF 6.13 add-migration throw exception on VS2017, Microsoft.Build.Framework

我在输入添加迁移时收到此错误。 ApplicationDbContext 存在于另一个项目中,而迁移文件存在于 Web 应用程序项目中。

如果我没记错的话,它以前工作过,但现在停止工作了。 我已尝试以管理员身份重新启动 visual studio、运行。重新安装 EF 6.11、6.13 和 6.20。

Visual Studio 版本 15.8.5,构建工具 15.1

迁移存在于启动项目中,包管理器也设置在启动项目中。

我什至尝试修复 Visual Studio 之后我也尝试卸载然后安装但没有任何效果。

我尝试了我编辑 devenv.exe.config 的解决方案,但没有用 https://github.com/aspnet/EntityFramework6/issues/382

add-migration AddedUserFax
    System.TypeInitializationException: The type initializer for 'Company.SoftwareX.Contexts.ApplicationDbContext' threw an exception. ---> System.IO.FileNotFoundException: Could not load file or assembly 'Microsoft.Build.Framework, Version=15.1.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a' or one of its dependencies. The system cannot find the file specified.
       at Company.SoftwareX.Database.Contexts.ApplicationDbContext..cctor()
       --- End of inner exception stack trace ---
       at Company.SoftwareX.Database.Contexts.ApplicationDbContext..ctor() in C:\Projects\Visual Studio\Project\Company.SoftwareX.Database\ApplicationDbContext.cs:line 110
    --- End of stack trace from previous location where exception was thrown ---
       at System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw()
       at System.Data.Entity.Infrastructure.DbContextInfo.CreateInstance()
       at System.Data.Entity.Infrastructure.DbContextInfo..ctor(Type contextType, DbProviderInfo modelProviderInfo, AppConfig config, DbConnectionInfo connectionInfo, Func`1 resolver)
       at System.Data.Entity.Migrations.DbMigrator..ctor(DbMigrationsConfiguration configuration, DbContext usersContext, DatabaseExistenceState existenceState, Boolean calledByCreateDatabase)
       at System.Data.Entity.Migrations.DbMigrator..ctor(DbMigrationsConfiguration configuration)
       at System.Data.Entity.Migrations.Design.MigrationScaffolder..ctor(DbMigrationsConfiguration migrationsConfiguration)
       at System.Data.Entity.Migrations.Design.ToolingFacade.ScaffoldRunner.Run()
       at System.AppDomain.DoCallBack(CrossAppDomainDelegate callBackDelegate)
       at System.AppDomain.DoCallBack(CrossAppDomainDelegate callBackDelegate)
       at System.Data.Entity.Migrations.Design.ToolingFacade.Run(BaseRunner runner)
       at System.Data.Entity.Migrations.Design.ToolingFacade.Scaffold(String migrationName, String language, String rootNamespace, Boolean ignoreChanges)
       at System.Data.Entity.Migrations.AddMigrationCommand.Execute(String name, Boolean force, Boolean ignoreChanges)
       at System.Data.Entity.Migrations.AddMigrationCommand.<>c__DisplayClass2.<.ctor>b__0()
       at System.Data.Entity.Migrations.MigrationsDomainCommand.Execute(Action command)
    The type initializer for 'Company.SoftwareX.Database.Contexts.ApplicationDbContext' threw an exception.

这个问题的答案是在创建新实例之前 运行 需要在 DbContext 中没有静态构造函数或构造函数中的其他静态方法。

最大的线索在堆栈跟踪中,System.TypeInitializationException:类型初始值设定项... 这表明静态 properties/constructors(即,根据合同,必须 运行 才能更新任何实例)抛出错误。 - 花费者