首页 > 解决方案 > 运行引用多个版本的“第 3 方”dll 的 .net 应用程序

问题描述

我们正面临以下挑战。

我们有一个应用程序——我们称之为 WebAPI。WebAPI 通过它自己的一组 dll 与第 3 方数据库(我们称之为 TDB)进行交互——我们称之为 TDBLogic.dll、TDBServices.dll、TDBBusiness.dll。这些 dll 都是 1.2 版,并已作为参考包含在 WebAPI 解决方案中。WebAPI 解决方案具有与这些 dll 交互并执行必要操作的特定类。TDB 交互非常复杂,我们有一些对象(让我们调用一个 TDBRepo)从 TDB dll 的接口继承。

挑战在于我们的环境包含多个 TDB 数据库,并且每个数据库都运行在不同的版本上。如果我们希望 WebAPI 与不同的 TDB 数据库交互,则必须调用正确版本的 TDB dll。此外,如上所述,与这些 dll 交互的 TDBRepo 必须根据其使用的 TDB dll 的版本而有所不同。

那是我们当前问题的简化版本,还有很多事情要做,但我正在尝试以最简单的形式找到正确的方法来处理这个问题。

我最初想只创建调用 TDB dll 的类的多个版本,包括每个版本的 TDBRepo,然后引用相关的 Dll。问题当然是 dll(TDBBusiness、TDBLogic 和 TDBServices)在每个版本中具有相同的名称。

如果有人可以建议一种在 .net c# 解决方案中正确处理此问题的方法,我将不胜感激。

有没有办法创建引用这些 dll 的特定版本的相关 TDBRepo 类?

版本切换必须在使用 WebAPI 期间的运行时发生,而不仅仅是在 LOAD 时发生。

谢谢您的帮助!

标签: c#.netdllappdomain

解决方案


推荐阅读