程序集绑定重定向到较低版本

我试图降级NServiceBus依赖,所以而不是使用4.0.0.0来使用2.5.0.0

我正在尝试以下方式,其中任何一个似乎都不起作用。

        

我也试过代码库:

         

还有,纳达。 我浏览了msdn文档,并没有提到以向后的方式使用此function。 这可能吗?

我实际上是在使用你的第一个语句用于一些互操作DLL,因为我们公司的客户端在办公室更新方面有不同的状态。 这是我使用的代码:

        

这提供了从版本14到版本11的向后兼容性。您能提供到您正在使用的DLL的链接吗?

我已经下载了NServiceBus框架(版本3.3.8)并使用ILSpy调查了DLL。 我建议你对你的DLL做同样的事情。 对于我的DLL,它向我显示与您相同的公钥令牌。 您确定,您使用的是版本4.0.0.0而不是版本3.3.0.0。 或者你也许错过了公钥Key令牌。

根据MSDN: https : //msdn.microsoft.com/en-us/library/eftw1fys(v = vs.110) .aspx

此值可以指定早于oldVersion的版本。

引用newVersion属性。 同样在“备注”部分:

您还可以从较新版本重定向到较旧版本的程序集。

他们的例子是:

           

我注意到它还提到了一些关于应用程序配置文件中的显式程序集绑定重定向需要安全权限 ,这可能也会影响到你?

如果我没有弄错你,我已经使用stimulsoft报告DDL做了同样的事情,我安装了最新版本,但我想在我的应用程序中使用2010.3。 但不是通过配置文件和重定向:我只是从解决方案资源管理器中删除了引用并添加了旧的DLL引用,然后我设置了复制本地属性并重新编译,以便DLL将应用程序放在同一目录中,每个工作正常精细。 也与其他一些dll一起完成。

上面的答案是很好的答案,但它们缺少重要的部分。 如果您阅读评论,一些开发者不再相信这是有效的。 事实上, 这是工作和工作双向,向上版本或向下

重要: 文化

在我的实验中,只有当我将文化设置为中立时才开始工作。 (上面的例子有’en-us’)

  

在我的设置中,我有引用Lib1Lib3 WinAppLib1引用了Lib2Lib3Lib2引用了Lib3 。 当我按下按钮时,一个调用从WinApp一直传播到Lib3 (直接和通过lib链),并在屏幕上显示文本返回。 Lib3

运行1 – 没有文化集[assembly: AssemblyCulture("")] ,没有绑定重定向集 – WORKS!

运行2 – Lib3中的较低版本,将绑定重定向设置为’en-us’ – 失败!

在Lib3中运行3 – 较低版本,将绑定重定向设置为“中性” – 工作! 适用于版本和版本。

在其他运行中 – 使用设置[assembly: AssemblyCulture("en-us")] – 当AssemblyCulture不为空时,所有尝试都失败。 实际上,在WinApp设置此属性时,它甚至不会编译

错误CS7059:可执行文件不能是附属程序集; 文化应该永远是空的

所以,我们走了。 由于我不理解AssemblyCulture所有复杂function,我只声称我的实验只certificate在特定条件下版本重定向工作正常。