【发布时间】:2016-09-20 01:36:45
【问题描述】:
我的应用是第三方非托管应用的 c# 插件。我有一个 Windows 窗体,其中一个控件(AxInterop)依赖于它们的一个非托管 dll。它们的 2015 版相同控件依赖于不同的类型库文件(例如 abc.tlb 现在是 123.tlb),但它们都支持相同的接口。
我不想创建单独的构建。
如何让我的代码在早期版本中使用 ABC.tlb 而在 2015 版本中使用 123.tlb?
你能在启动时像程序集一样加载 tlb 文件吗?
谢谢
【问题讨论】:
-
这毫无意义。 .tlb 文件是在编译时使用的类型库。因此,您必须使用新的类型库引用重新编译您的应用程序。
-
我之前使用过动态和反射,因此我不必引用此控件使用的相同 dll。现在这里的不同之处在于我正在使用引用 dll 的控件,并且我正在寻找一种方法来让它找到 2015 年的新 dll。所以也许认为我需要加载一个不同的 tlb 我只需要加载启动时的那个新dll。这有意义吗?
标签: c# load version unmanaged tlb