山鬼巴塘 2022-03-08 19:37 采纳率: 0%
浏览 414

具有间接依赖关系,而该程序集的版本为“4.0.0.0”,高于当前目标框架中的版本“2.0.0.0”

问题遇到的现象和发生背景

我新建了一个“目标框架”为3.5的.net项目
在项目里引用了一些第三方的dll(这些dll必须用到),这些dll依赖的程序集中的dll版本过低,为2.0.0.0或者3.0.0.0,但是当前程序集的dll版本为4.0.0.0,所以生成的时候总是报错。

运行结果及报错内容

例如,

未能解析主引用“Bentley.microstation.winforms.controls”,因为它对 .NET Framework 程序集“Accessibility, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b011d50a3a”具有间接依赖关系,而该程序集的版本为“4.0.0.0”,高于当前目标框架中的版本“2.0.0.0”。

未能解析主引用“Bentley.MicroStation.XmlInstanceapi”,因为它对 .NET Framework 程序集“Microsoft.Transactions.Bridge, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b031d50a3a”具有间接依赖关系,而该程序集的版本为“4.0.0.0”,高于当前目标框架中的版本“3.0.0.0”。

我的解答思路和尝试过的方法

我试过提高项目的“目标框架”,这样又会导致第三方dll无法使用,报错。
例如,

无法嵌入互操作类型“DataBlockClass”。请改用适用的接口。

也试过添加app.config来修改指引,也不行。

</><?xml version="1.0" encoding="utf-8"?>
<configuration>
    <runtime>
        <assemblyBinding xmlns="urn:schemas-microsoft-com:asm.v1">
            <dependentAssembly>
                <assemblyIdentity name="Accessibility" publicKeyToken="b03f11d50a3a" culture="neutral"/>
                <bindingRedirect oldVersion="0.0.0.0-4.0.0.0" newVersion="2.0.0.0"/>
            </dependentAssembly>
        </assemblyBinding>
    </runtime>
<startup><supportedRuntime version="v2.0.50727"/></startup></configuration>
> 
</>

我想要达到的结果

这样问题只出现在台式机上,同样的项目在笔记本上没有出现。(我怀疑是台式机上装了某个其他的软件,纂改了程序集,但找不到篡改了哪里)。
请问,怎么让程序集的间接依赖关系正常?

  • 写回答

1条回答 默认 最新

  • 丨Haruna 2022-03-10 15:03
    关注
    <bindingRedirect oldVersion="0.0.0.0-4.0.0.0" newVersion="2.0.0.0"/>
    

    重定向到高版本也不行吗

    评论

报告相同问题?

问题事件

  • 创建了问题 3月8日

悬赏问题

  • ¥15 win11 23H2删除推荐的项目,支持注册表等
  • ¥15 matlab 用yalmip搭建模型,cplex求解,线性化处理的方法
  • ¥15 qt6.6.3 基于百度云的语音识别 不会改
  • ¥15 关于#目标检测#的问题:大概就是类似后台自动检测某下架商品的库存,在他监测到该商品上架并且可以购买的瞬间点击立即购买下单
  • ¥15 神经网络怎么把隐含层变量融合到损失函数中?
  • ¥15 lingo18勾选global solver求解使用的算法
  • ¥15 全部备份安卓app数据包括密码,可以复制到另一手机上运行
  • ¥20 测距传感器数据手册i2c
  • ¥15 RPA正常跑,cmd输入cookies跑不出来
  • ¥15 求帮我调试一下freefem代码