gpt4 book ai didi

C# 程序集绑定(bind)重定向 - Newtonsoft.Json

转载 作者:太空狗 更新时间:2023-10-29 23:35:54 25 4
gpt4 key购买 nike

我有以下依赖

项目 A(由我拥有)使用

  1. project_b.dll
  2. Newtonsoft.Json.dll(版本 8)

项目B使用

  1. project_c.dll
  2. Newtonsoft.Json.dll(版本 9)

项目 C 使用

  1. Newtonsoft.Json.dll(4.5 版)

项目 A 调用项目 B 的方法,项目 B 将调用项目 C 的方法,然后将值返回给 B,然后返回 A

<dependentAssembly>
<assemblyIdentity name="Newtonsoft.Json" culture="neutral" />
<bindingRedirect oldVersion="0.0.0.0-655535.0.0.0" newVersion="XX" />
</dependentAssembly>

我正在尝试在项目 A 上使用程序集绑定(bind)重定向。如果我将“newVersion”设置为 9.0,则代码会报错(缺少 Newtonsoft.jSon.dll 4.5 库)。同样,如果我将“newVersion”设置为 4.5,则会发生缺少 Newtonsoft.Json.dll 9.0 库错误。我也尝试了 8.0 的“newVersion”值。它看起来很简单,我认为重定向应该可以解决问题。什么是好的解决方案?项目 A、B 和 C 是否应该具有相同版本的 Newtonsoft.Json.dll?

提前致谢..

最佳答案

唯一具有高于平均水平的工作机会的解决方案是所有库都引用相同的“主要”版本库的编号(8.*9.* 等 - 第一个数字)。然后,您应该能够使用程序集绑定(bind)重定向来修复任何小于“主要”的内容,尽管越来越常见的是看到程序集版本有效地固定在主要版本上,以避免程序集绑定(bind)重定向 hell 。

这里的关键点是,在 semver 下,“主要”的任何更改都应被视为重大更改,因此您不应期望针对不同“主要”编译的代码能够正常工作,甚至根本无法正常工作。

注意:跨专业使用程序集绑定(bind)重定向在技术上是可行的;你只是不应该期望它真的有效。如果是:将其视为意想不到的奖励。

关于C# 程序集绑定(bind)重定向 - Newtonsoft.Json,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57498019/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com