无法在Entityframework核心中加载DLL Microsoft.Data.SqlClient.SNI.x86.dll

问题描述 投票:0回答:2

我有一个Web表单项目(项目A),它引用了我用于数据访问层的另一个类库项目(项目B),我在项目A和B中安装了EntityFramework 3.1.15,现在我得到了运行-

 db.SaveChanges();
中的时间错误错误说:

无法加载DLL“Microsoft.Data.SqlClient.SNI.x86.dll”:找不到指定的模块。 (HRESULT 异常:0x8007007E)

项目 B 使用的是 .NETFramework 4.7.2,项目 A 是 .NETFramework 4.5,后来我将其更改为 .NETFramework 4.7.2。但我遇到了同样的错误。

我该如何解决这个问题?

c# entity-framework webforms entity-framework-core nuget
2个回答
1
投票

要解决该错误,我必须在我的可执行项目中引用 Microsoft.Data.SqlClient.SNI nuget,其中我的数据库连接项目已经引用了 Microsoft.Data.SqlClient

希望这有帮助。


0
投票

在您的 Web 项目(项目 A)中使用 Nuget Package Manager 添加包 Microsoft.Data.SqlClient。检查问题是否已解决。 如果仍然无法解决您的问题,请使用 vscode 甚至记事本等代码编辑器打开项目 A .csproj 文件,然后添加以下内容

<Target Name="_CopySNIFilesToWebProjectOutputDir"
        AfterTargets="CopySNIFiles"
        Condition="'$(WebProjectOutputDir)' != ''">
        
    <Copy SourceFiles="@(SNIFiles)"
          DestinationFiles="@(SNIFiles -> '$(WebProjectOutputDir)\bin\%(RecursiveDir)%(Filename)%(Extension)')"/>
</Target>

请检查 github 上的线程:

解决方法

详细讨论

© www.soinside.com 2019 - 2024. All rights reserved.