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

已安装的C#应用加载错误SqlClient DLL问题求助

解决.NET 8应用MSI部署后Microsoft.Data.SqlClient加载异常问题

问题核心

  • 部署后应用优先加载exe同目录下的Microsoft.Data.SqlClient.dll,该DLL与.NET 8运行时/目标平台不兼容
  • 本地调试时应用自动加载{ProjectName}\bin\Debug\net8.0\runtimes\win\lib\net6.0\Microsoft.Data.SqlClient.dll(Windows运行时适配版本),因此运行正常
  • 手动替换DLL后缺失Microsoft.Data.SqlClient.SNI.dll,因为该文件是平台特定的原生依赖,需随对应运行时版本部署

解决方法

1. 调整安装项目的文件包含规则

  • 在Visual Studio的安装项目中,不要直接包含NuGet包根目录的Microsoft.Data.SqlClient.dll
  • 找到项目依赖的Microsoft.Data.SqlClient包路径,将其runtimes\win目录下的所有文件(含lib\net6.0\Microsoft.Data.SqlClient.dll、native\Microsoft.Data.SqlClient.SNI.dll及其他子文件)添加到安装项目,保留原目录结构(即安装后应用目录下存在runtimes\win子目录)
  • 这样应用会根据运行时自动加载对应平台的适配DLL

2. 显式管控NuGet依赖版本

  • 在应用的.csproj文件中显式引用适配.NET 8的Microsoft.Data.SqlClient版本,避免依赖传递导致的版本不一致:
    <ItemGroup>
      <!-- 版本号可根据EF Core的依赖要求调整,确保支持.NET 8 -->
      <PackageReference Include="Microsoft.Data.SqlClient" Version="5.1.5" />
    </ItemGroup>
    
  • 添加运行时标识符配置,锁定目标平台:
    <PropertyGroup>
      <!-- 根据服务器架构选择win-x64或win-x86 -->
      <RuntimeIdentifiers>win-x64</RuntimeIdentifiers>
    </PropertyGroup>
    

3. 验证MSI部署的目录结构

  • 重新生成安装项目后,检查安装包的文件系统视图,确保runtimes文件夹及其子目录完整部署到目标服务器的应用根目录
  • 安装完成后,确认服务器上的应用目录结构与本地bin\Debug\net8.0目录完全一致

4. 解决服务器构建时的Azure Artifacts认证问题

  • 在服务器上配置NuGet认证,使用个人访问令牌(PAT)访问Azure Artifacts源:
    • 打开命令行执行:
      nuget sources add -name "AzureArtifacts" -source "你的Azure Artifacts源URL" -username "任意字符串" -password "你的PAT令牌"
      
    • 或者修改服务器的NuGet.Config文件(通常位于%AppData%\NuGet\NuGet.Config),添加认证节点:
      <configuration>
        <packageSources>
          <add key="AzureArtifacts" value="你的Azure Artifacts源URL" />
        </packageSources>
        <packageSourceCredentials>
          <AzureArtifacts>
            <add key="Username" value="任意字符串" />
            <add key="ClearTextPassword" value="你的PAT令牌" />
          </AzureArtifacts>
        </packageSourceCredentials>
      </configuration>
      
    • 确保PAT拥有Azure Artifacts包源的读取权限

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.25 22:30:21