C# 无法加载文件或程序集';Microsoft.Data.SqlClient';在.NET标准库中
我创建了一个.NET标准库2.0,它使用C# 无法加载文件或程序集';Microsoft.Data.SqlClient';在.NET标准库中,c#,ado.net,.net-standard,C#,Ado.net,.net Standard,我创建了一个.NET标准库2.0,它使用Microsoft.Data.SqlClientVersion=1.12.20106.1。我指的是控制台应用程序(.NET Framework 4.7.2)中的这个库。在进行调用时,我得到如下所示的错误,即使我添加了一个程序集引用。有人能帮忙吗 无法加载文件或程序集“Microsoft.Data.SqlClient,版本=1.12.20106.1,区域性=中性,PublicKeyToken=23ec7fc2d6eaa4a5”或其依赖项之一。系统找不到指定的
Microsoft.Data.SqlClient
Version=1.12.20106.1。我指的是控制台应用程序(.NET Framework 4.7.2)中的这个库。在进行调用时,我得到如下所示的错误,即使我添加了一个程序集引用。有人能帮忙吗
无法加载文件或程序集“Microsoft.Data.SqlClient,版本=1.12.20106.1,区域性=中性,PublicKeyToken=23ec7fc2d6eaa4a5”或其依赖项之一。系统找不到指定的文件。“:“Microsoft.Data.SqlClient,版本=1.12.20106.1,区域性=中性,PublicKeyToken=23ec7fc2d6eaa4a5”}
很有可能,在完全错误中,您会看到如下内容 找到的程序集的清单定义与 程序集引用。(来自HRESULT的异常:0x8013100) 当我遇到类似的问题并在调试器中运行单元测试时,我会在单元测试输出预绑定状态信息中看到这种情况
Pre-bind state information
LOG: DisplayName = Microsoft.Data.SqlClient, Version=2.0.20168.4, Culture=neutral, PublicKeyToken=23ec7fc2d6eaa4a5
(Fully-specified)
LOG: Appbase = file:///C:/Dev2/MyApp/UnitTests/bin/Debug
LOG: Initial PrivatePath = NULL
Calling assembly : MyApp, Version=1.0.0.2, Culture=neutral, PublicKeyToken=c.
===
LOG: This bind starts in default load context.
LOG: Using application configuration file: C:\Dev2\myapp\UnitTests.dll.config
LOG: Using host configuration file:
LOG: Using machine configuration file from C:\Windows\Microsoft.NET\Framework64\v4.0.30319\config\machine.config.
LOG: Redirect found in application configuration file: 2.0.20168.4 redirected to 1.12.20106.1.
LOG: Post-policy reference: Microsoft.Data.SqlClient, Version=1.12.20106.1, Culture=neutral, PublicKeyToken=23ec7fc2d6eaa4a5
LOG: Attempting download of new URL file:///C:/Dev2/MyApp/UnitTests/bin/Debug/Microsoft.Data.SqlClient.DLL.
WRN: Comparing the assembly name resulted in the mismatch: Major Version
ERR: Failed to complete setup of assembly (hr = 0x80131040). Probing terminated.
此问题是程序集绑定问题。答案可能会有所帮助。不要担心它提到VB6。实际问题与此无关。此答案仅在
netstandard2.0
库已将Microsoft.Data.SqlClient
作为NuGet包引用并且引用的程序集未在生成时复制时才有用
您可能必须使用
dotnet publish
来复制Microsoft.Data.SqlClient
程序集。这是我最近偶然发现的,我必须解决的问题。您不应该使用该解析器,但您应该检查发布应用程序和库是否有助于解决此问题。它认为它一定是在复制,因为fixing程序集绑定解决了问题。好的,我不知道问题已经解决了,因为作者还没有回复任何内容。谢谢您的尝试