更新到新程序包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之前,一切正常.请帮忙解决这个问题.

推荐答案

因为你在一个项目中使用这个项目.net framework库中,自动生成的绑定重定向存在问题(可能会在即将到来的15.3更新/2.0.net core CLI中解决).要解决这个问题,请将其添加到cpsroj文件中(最好在.targets文件的任何<Import>元素之前,如果存在的话):

<PropertyGroup>
  <AutoGenerateBindingRedirects>true</AutoGenerateBindingRedirects>
  <GenerateBindingRedirectsOutputType>true</GenerateBindingRedirectsOutputType>
</PropertyGroup>

这将强制MSBuild创建/更新包含必要绑定重定向的YourProject.dll.config文件.

.net相关问答推荐

如何在PowerShell中隐藏任务延迟输出?

如果只有一个 : 存在于字符串中,则提取冒号后的内容

在 Rx 中,处理线程安全是否是消费者(IObserver)的责任?

MongoDB GridFs with C#,如何存储图片等文件?

如何在 FtpWebRequest 之前判断 FTP 上是否存在文件

移位比Java中的乘法和除法更快吗? .网?

来自奥尔森时区的 .NET TimeZoneInfo

添加新实体标量时实体框架 4 映射片段错误

如何从 appsettings.json 中获取价值

如何使用转储文件来诊断内存泄漏?

如何授予所有用户对我的应用程序创建的文件的完全权限?

在 .NET (C#) 中本地存储数据的最佳方式

设置 System.Drawing.Color 值

如何正确和完全关闭/重置 TcpClient 连接?

场与财产.性能优化

如何过滤具有多个条件的 Directory.EnumerateFiles?

并发字典正确用法

.NET 委托类型的正确命名约定?

有没有一种简单的方法来判断 .NET Framework 版本?

C#/.NET 中仅命名空间的类可见性?