当前位置: 首页 > 面试题库 >

无法加载文件或程序集Microsoft.Extensions.DependencyInjection.Abstractions,版本= 1.1.0.0

应俊爽
2023-03-14
问题内容

更新到新软件包Microsoft.EntityFrameworkCore.SqlServer 1.1.2之后,尝试创建DBContext时出现错误:

发生System.IO.FileLoadException HResult = 0x80131040
消息=无法加载文件或程序集’Microsoft.Extensions.DependencyInjection.Abstractions,版本=
1..1.0.0,文化=中性,PublicKeyToken =
adb9793829ddae60’或其依赖项之一。找到的程序集的清单定义与程序集引用不匹配。(来自HRESULT的异常:0x80131040)Source
= Microsoft.EntityFrameworkCore
StackTrace:位于Microsoft.EntityFrameworkCore.DbContext..ctor(DbContextOptions选项),位于C:\
src \ backend
\中的Services.Infrastructure.Data.SqlServerDbContext..ctor(DatabaseOptions
databaseOptions) Packages \ Services.Infrastructure \ Data \
SqlServerDbContext.cs:C:\ src \ backend \ Modules \ Translations \
Translations.Api \ Data \
TranslationsDbContext.cs中位于Translations.Api.Data.TranslationsDbContext..ctor(DatabaseOptions
databaseOptions)的行16 :第16行

我的基础DbContext

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框架库中的项目,因此自动生成的绑定重定向存在问题(可能会在即将发布的15.3更新/ 2.0
.net核心CLI中解决)。要解决此问题,请将其添加到cpsroj文件中(最好在文件的任何<Import>元素之前,.targets如果存在):

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

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



 类似资料:
  • 问题内容: 我正在使用c#和数据库MySQL开发桌面应用程序。当我在计算机上安装其安装程序时,它可以正常工作,但是当我在其他计算机上安装它的安装程序时,尝试访问数据库时会出现以下异常。我用来与MySQL通信。 无法加载文件或程序集“ MySql.Data,版本= 6.2.2.0,区域性=中性,PublicKeyToken = c5687fc88969c44d”或其依赖项之一。该系统找不到指定的文件

  • 问题内容: 我完全不知所措-我仍然什至没有真正理解的地方遇到超级奇怪的问题…我正在运行Entity Framework 4.1,MySql 5.xx和MySql Connector为6.4.4版-一切正常但是在本地,只要我上传到服务器,就会收到: 我很困惑,我很肯定我在Bin目录中有MySql 6.4.4 dll,我的Web.config也对版本6.3.6进行了零引用- 我已经在整个项目中(使用全

  • 在 win7 上,我的应用程序工作正常。但是当我尝试在win8上运行它时,我收到一个错误。 无法加载文件或程序集“系统.Web.WebPages.Razor,版本=2.0.0.0 System.Web.WebPages.Razor.dll 在发布期间是本地复制的。如果这很重要,我不久前从 mvc4 迁移到 mvc5。 堆栈跟踪: [FileLoadException: 无法加载文件或程序集 'Sy

  • 我正在尝试将一个项目从MVC 4/EF 5升级到MVC 5/EF 6。我将框架从4.5更新到4.5.1,然后从Nuget更新了解决方案MVC(4.0.30506.0到5.1.1)和EntityFramework(5到6.1.1)。这引入了Razor依赖项(2.0.30506.0到3.1.1)和WebPages(2.0.30506.0到3.1.1)。我编辑了Project and Views文件夹w

  • 我在ASP.NET中有一个WebApplication项目和一个实体项目(构建为DLL)。 如果我在调试模式下构建DLL,那么我的WebApp将成功加载程序集。但是当我在发布模式下构建DLL时,我的WebApp无法加载程序集。 未能加载文件或程序集“MyLibs,Version=1.0.0.0,Culture=Neutrative,PublicKeyToken=Null”或其依赖项之一。试图加载格

  • 我试图托管一个webproject,但是当服务器试图编译它时,我得到以下错误: 未处理的异常:System.io.FileLoadException:无法加载文件或程序集“Microsoft.codeAnalysis,版本=1.1.1.0,Culture=Neutrice,PublicKeyToken=31BF3856AD364E35”或其依赖项之一。定位的程序集的清单定义与程序集引用不匹配。(来