You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

.NET 8 WinForms发布版无法加载Microsoft.Data.SqlClient 5.0.0.0求助

.NET 8 WinForms发布后找不到Microsoft.Data.SqlClient 5.0.0.0的解决办法

1. 确认发布时的依赖包含

  • 检查发布输出目录中是否存在Microsoft.Data.SqlClient.dll(版本5.1.5)。若使用单文件发布,需在项目文件(.csproj)中添加配置确保依赖嵌入:
<PropertyGroup>
  <PublishSingleFile>true</PublishSingleFile>
  <IncludeNativeLibrariesForSelfExtract>true</IncludeNativeLibrariesForSelfExtract>
</PropertyGroup>
  • 若未用单文件发布,右键项目→发布→配置→文件发布选项,取消勾选可能导致依赖遗漏的选项(如“裁剪未使用的代码”)。

2. 修复程序集绑定重定向

  • 在项目的app.config中添加正确的重定向规则,覆盖所有旧版本指向5.1.5:
<runtime>
  <assemblyBinding xmlns="urn:schemas-microsoft-com:asm.v1">
    <dependentAssembly>
      <assemblyIdentity name="Microsoft.Data.SqlClient" publicKeyToken="23ec7fc2d6eaa4a5" culture="neutral" />
      <bindingRedirect oldVersion="0.0.0.0-5.1.5.0" newVersion="5.1.5.0" />
    </dependentAssembly>
  </assemblyBinding>
</runtime>
  • .NET 5+项目需在.csproj中启用自动重定向生成:
<PropertyGroup>
  <AutoGenerateBindingRedirects>true</AutoGenerateBindingRedirects>
  <GenerateBindingRedirectsOutputType>true</GenerateBindingRedirectsOutputType>
</PropertyGroup>

3. 排查隐性依赖引用

  • 执行dotnet list package --include-transitive命令查看完整依赖树,找出间接引用5.0.0.0版本的第三方包,将其更新到兼容.NET 8的版本。

4. 手动补充依赖文件

  • 从本地NuGet缓存(路径示例:C:\Users\<用户名>\.nuget\packages\microsoft.data.sqlclient\5.1.5\lib\net8.0)复制Microsoft.Data.SqlClient.dll到发布后的exe目录。

5. 检查共享驱动器权限

  • 确保运行程序的用户对共享目录有读取权限;右键dll文件→属性,若有“解除锁定”选项则点击解除,避免系统阻止读取。

内容的提问来源于stack exchange,提问作者Veera

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.21 16:10:08