0

我有一个实用程序程序集“Reg.dll”,它是使用 .NET 3.5 目标框架构建的。

Reg.dll 被一些具有目标 3.5 目标框架的应用程序和其他以 4.0 为目标的较新应用程序使用(升级 3.5 应用程序目前不是一个选项,由于发布限制,但最终会发生。)我假设这意味着Reg.dll 中的代码将在运行时在 4.0 或 3.5 CLR 上下文中运行,具体取决于应用目标框架。

我现在有一种情况,我想让 Reg.dll 检测它是在 4.0 还是 3.5 CLR 中运行(如果不是 4.0,我可以假设),并执行一个仅限 4.0 的方法(Microsoft.Win32.RegistryKey .FromHandle) 如果它在 4.0 CLR 中运行。

一位同事建议构建两个程序集,一个针对 3.5,另一个针对 4.0,并在运行时动态加载相应的程序集。这听起来像是可行的,但是我怀疑这也可以使用诸如 System.Reflection 功能来检测此特定方法的存在,然后以某种方式动态调用它来完成。

这是可能的,还是我最好选择多条装配路线?我将用作模型的代码片段/引用也会很有帮助,因为我之前没有在 .NET 的这方面工作过太多。

4

0 回答 0