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

升级RestSharp后VSTO插件遇System.Text.Json程序集异常

VSTO插件升级RestSharp后System.Text.Json异常解决指南

疑问解答

1. csproj引用版本与NuGet包版本差异是否正常?

正常。System.Text.Json的NuGet包版本(如7.0.2)和程序集文件版本号(如7.0.0.2)遵循微软版本策略:NuGet包版本包含补丁号,程序集的主/次版本号与NuGet包一致,修订号和构建号固定为0.2(针对7.x系列),两者不存在冲突,属于正确引用状态。

2. 需要重点检查的内容

  • 程序集绑定重定向配置
    由于VSTO插件运行在Outlook进程中,易出现跨程序集版本冲突,需确保插件的app.config(编译后为[插件名称].dll.config)中添加正确的绑定重定向规则,将所有版本的System.Text.Json重定向到项目实际引用的版本:

    <configuration>
      <runtime>
        <assemblyBinding xmlns="urn:schemas-microsoft-com:asm.v1">
          <dependentAssembly>
            <assemblyIdentity name="System.Text.Json" publicKeyToken="cc7b13ffcd2ddd51" culture="neutral" />
            <bindingRedirect oldVersion="0.0.0.0-8.0.0.2" newVersion="7.0.0.2" />
          </dependentAssembly>
        </assemblyBinding>
      </runtime>
    </configuration>
    

    注意:newVersion需与csproj中引用的程序集版本一致,publicKeyToken必须为cc7b13ffcd2ddd51(System.Text.Json官方公钥)。

  • 依赖文件完整性与输出目录检查

    • 执行Clean Solution清理项目后重新生成,检查项目输出目录(bin/Debug/bin/Release)中是否存在对应版本的System.Text.Json.dll,且文件版本与引用版本匹配;
    • 检查NuGet本地缓存(默认路径%userprofile%\.nuget\packages\system.text.json)中对应版本的包是否完整,若损坏则删除后重新安装。
  • RestSharp依赖冲突排查
    打开NuGet包管理器的「管理解决方案的NuGet包」,查看RestSharp 110.2.0的依赖项中指定的System.Text.Json版本,确保项目引用的版本与之兼容;若存在版本差异,优先通过绑定重定向统一版本,而非强行升级/降级NuGet包。

  • VSTO加载目录验证
    调试时,通过Visual Studio调试窗口的「模块」面板查看插件dll的加载路径,确认该目录下存在正确版本的System.Text.Json.dll,避免因文件未复制导致加载失败。

  • 目标框架兼容性检查
    切换至.NET Framework 4.7.1后,需确认所有NuGet包(包括System.Text.Json、RestSharp)均支持该框架版本,避免因目标框架不匹配导致程序集清单冲突(FileLoadException)。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.28 14:10:01