gpt4 book ai didi

c# - 同一引用程序集的多个版本

转载 作者:行者123 更新时间:2023-11-30 17:10:33 27 4
gpt4 key购买 nike

我有一个问题,目前无法解决。

我有一个从文件夹加载插件(.dll 程序集)的程序集(可执行文件 .net 4.0)。主要可执行文件引用了 telerik.windows.controls.dll 并且运行良好。

现在我编写了一个新插件,它使用了更新版本的 telerik 库,更具体地说,是程序集 telerik.windows.controls.GanttView。问题是 GanttView 控件使用了更新版本的 telerik.windows.controls.dll,因此我遇到了崩溃,因为插件无法加载 telerik 引用的程序集。

我知道我可以通过将所有组件升级到最新的一组引用程序集 (telerik) 来解决这个问题,但是我的团队尚未对这些控件进行 QA/测试以确保不会引入新的错误。

总结一下:

main.exe -> a.dll -> X.dll (v1)

然后我添加一个名为 b.dll 的新插件:

main.exe ->b.dll-> X.dll (v2) +------------> X.dll (v1)

所以问题是我的 plguin 可以从不同的位置引用不同版本的程序集(以及它所引用的程序集),因为现在它加载了主程序集加载的程序集。

谢谢。

最佳答案

简短的回答是否定的,如果较新的 dll 具有相同的程序集信息。

更长的答案是,在一个应用程序域(除非您自己创建更多,否则您不会有多个)中,您只能加载一个特定的程序集。再一次,这是假设我们正在讨论的程序集 (dll) 具有相同的程序集信息。如果要加载较新的程序集,则必须创建一个单独的应用程序域。但是您将无法在初始应用程序域中使用它,因为您的其他控件是“活的”。

关于c# - 同一引用程序集的多个版本,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12078093/

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