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

标签 c# telerik

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

我有一个从文件夹加载插件(.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/

相关文章:

c# - 对如何使用 Google Api 有点困惑。坚持使用 Oauth

c# - 将 PDF 从内存加载到 telerik :RadPdfViewer

c# - 哈希表到 Dictionary<> syncroot 。

c# - 枚举程序集的所有已安装版本(在 GAC 中)

css - Kendo TabStrip 中的引导网格

c# - 我如何将选定的选项卡存储在 RadTabStrip 上,单击后退按钮可以将其返回

c# - RadDateInput 格式不正确

internet-explorer - 没有足够的存储空间来完成此操作

C#:我是否需要处理在运行时创建的 BackgroundWorker?

javascript - 在 MVC 应用程序中将数据导出到 Excel