更新到新程序包Microsoft.EntityFrameworkCore.SqlServer 1.1.2后,try 创建DBContext时出错:
发生System.IO.FileLoadException HResult=0x80131040
消息=无法加载文件或程序集 ‘Microsoft.Extensions.DependencyInjection.Abstractions, 版本=1.1.0.0,区域性=中性,PublicKeyToken=adb9793829ddae60‘或 它的一个依赖项.找到的程序集的 list 定义 与程序集引用不匹配.(HRESULT例外: 0x80131040)来源=Microsoft.EntityFrameworkCore StackTrace:at Microsoft.EntityFrameworkCore.DbContext..ctor(DbContextOptions 选项)位于 Services.Infrastructure.Data.SqlServerDbContext..ctor(DatabaseOptions 数据库选项)中 C:\src\backend\Packages\Services.Infrastructure\Data\SqlServerDbContext.cs:line 16在 Translations.Api.Data.TranslationsDbContext..ctor(DatabaseOptions 数据库选项)中 C:\src\backend\Modules\Translations\Translations.Api\Data\TranslationsDbContext.cs:line 16个
我的基本数据库上下文
public class SqlServerDbContext : DbContext
{
private readonly DatabaseOptions _databaseOptions;
protected SqlServerDbContext(DatabaseOptions databaseOptions)
{
if (string.IsNullOrEmpty(databaseOptions.ConnectionString))
throw new Exception("Database connection string is missed.");
_databaseOptions = databaseOptions;
}
protected override void OnConfiguring(DbContextOptionsBuilder optionsBuilder)
{
optionsBuilder.UseSqlServer(_databaseOptions.ConnectionString);
}
}
我使用的数据库选项
public class DatabaseOptions
{
public string ConnectionString { get; set; }
}
创建上下文实例的位置
var dbOptions = new DatabaseOptions { ConnectionString = _connectionString };
DbContext = (TContext) Activator.CreateInstance(typeof(TContext), dbOptions);
// where TContext is derived class from SqlServerDbContext
我所有的软件包都更新了.Visual Studio 2017 15.2(26430.6).在升级到1.1.2之前,一切正常.请帮忙解决这个问题.