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

VS2019调试.NET Core 3.1时找不到Microsoft.Data.SqlClient.resources.dll

针对Microsoft.Data.SqlClient.resources.dll缺失问题的C#层面解决方案

异常信息:Could not load file or assembly 'C:\Users\user1\Dev\source\repos\repo_name\project_name\bin\Debug\netcoreapp3.1\runtimes\win\lib\netcoreapp3.1\Microsoft.Data.SqlClient.resources.dll'. The system cannot find the file specified.

以下是无需重装VS/SDK的可落地解决办法:

  • 自定义程序集解析事件绕过资源加载
    在程序入口(如Program.cs的Main方法最顶部)添加如下代码,直接拦截缺失的资源程序集请求,不抛出异常:
AppDomain.CurrentDomain.AssemblyResolve += (_, args) =>
{
    if (args.Name.StartsWith("Microsoft.Data.SqlClient.resources", StringComparison.OrdinalIgnoreCase))
    {
        // 资源程序集缺失不影响核心功能,直接返回null跳过加载
        return null;
    }
    return null;
};
  • 修改项目.csproj配置修复资源输出问题
    在项目文件中添加如下配置,限制附属资源语言,避免不必要的资源程序集加载请求:
<PropertyGroup>
  <!-- 指定默认语言,禁止生成多余的本地化资源文件 -->
  <NeutralLanguage>en-US</NeutralLanguage>
  <SatelliteResourceLanguages>en-US</SatelliteResourceLanguages>
</PropertyGroup>

<ItemGroup>
  <!-- 强制绑定兼容.NET Core 3.1的稳定版本SqlClient,避免版本混淆 -->
  <PackageReference Include="Microsoft.Data.SqlClient" Version="2.1.5" />
</ItemGroup>
  • 预加载核心SqlClient程序集
    在首次实例化SqlConnection之前,手动触发核心程序集加载,规避运行时依赖解析的链式错误:
// 任意业务代码运行前执行一次即可
_ = typeof(Microsoft.Data.SqlClient.SqlConnection);

注:Microsoft.Data.SqlClient.resources.dll属于本地化附属程序集,仅用于返回对应语言的异常提示,缺失不会影响数据库操作的核心逻辑,上述方案均是稳定的长期解决方案,不会产生额外副作用。

内容的提问来源于stack exchange,提问作者EnocNRoll - AnandaGopal Pardue

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.24 00:06:04