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

为何ClickOnce未将Microsoft.Data.SqlClient.SNI.x86/x64 DLL纳入发布文件夹?

解决ClickOnce发布VSTO加载项时缺失Microsoft.Data.SqlClient.SNI DLL的问题
  • 方法1:直接修改项目文件
    找到VSTO加载项的.csproj文件,用记事本或代码编辑器打开,添加以下XML配置块,明确标记要包含到ClickOnce发布中的SNI DLL:

    <ItemGroup>
      <Content Include="$(SolutionDir)packages\Microsoft.Data.SqlClient.[你的版本号]\runtimes\win-x86\native\Microsoft.Data.SqlClient.SNI.x86.dll">
        <Link>Microsoft.Data.SqlClient.SNI.x86.dll</Link>
        <CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
        <IncludeInClickOnce>true</IncludeInClickOnce>
      </Content>
      <Content Include="$(SolutionDir)packages\Microsoft.Data.SqlClient.[你的版本号]\runtimes\win-x64\native\Microsoft.Data.SqlClient.SNI.x64.dll">
        <Link>Microsoft.Data.SqlClient.SNI.x64.dll</Link>
        <CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
        <IncludeInClickOnce>true</IncludeInClickOnce>
      </Content>
    </ItemGroup>
    

    记得把[你的版本号]替换成你实际安装的Microsoft.Data.SqlClient版本号,比如2.0.1。保存文件后重新生成项目,再执行ClickOnce发布。

  • 方法2:通过Visual Studio界面手动添加并配置

    1. 在Visual Studio里右键点击VSTO加载项项目,选择添加→现有项
    2. 导航到NuGet包的本地路径:packages\Microsoft.Data.SqlClient.[你的版本号]\runtimes\win-x86\native,选中Microsoft.Data.SqlClient.SNI.x86.dll添加到项目;同样操作添加x64版本的DLL(路径是win-x64\native)
    3. 在解决方案资源管理器中选中这两个DLL,打开属性窗口:
      • 把复制到输出目录设为“始终复制”或“如果较新则复制”
      • 把包含在ClickOnce中设为“是”
    4. 重新生成项目后再发布
  • 方法3:检查项目引用的复制本地设置

    1. 确认你的.NET Core 2.0项目中,Microsoft.Data.SqlClient的NuGet包引用的CopyLocal属性是True
    2. 如果VSTO项目是直接引用的这个.NET Core项目,右键点击VSTO项目里的该引用,选属性,把复制本地设为True,这样依赖的DLL会被复制到VSTO的输出目录,ClickOnce就能自动包含它们

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.20 02:17:35