Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/323.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 无法加载文件或程序集';Microsoft.Data.SqlClient';在.NET标准库中_C#_Ado.net_.net Standard - Fatal编程技术网

C# 无法加载文件或程序集';Microsoft.Data.SqlClient';在.NET标准库中

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”或其依赖项之一。系统找不到指定的

我创建了一个.NET标准库2.0,它使用
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程序集绑定解决了问题。好的,我不知道问题已经解决了,因为作者还没有回复任何内容。谢谢您的尝试