问题遇到的现象和发生背景
我新建了一个“目标框架”为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>
>
</>
我想要达到的结果
这样问题只出现在台式机上,同样的项目在笔记本上没有出现。(我怀疑是台式机上装了某个其他的软件,纂改了程序集,但找不到篡改了哪里)。
请问,怎么让程序集的间接依赖关系正常?