c# - 在同一运行时运行两个相同的 DLL?

标签 c# .net dll

问题:我有 DLL 形式的开发代码和生产代码,我希望能够比较每个代码的结果。这一切都需要在同一个运行时发生。

我正在寻找的内容: 只需加载开发 DLL、存储结果、然后打开生产 DLL、存储结果,然后比较两者结果的代码。

当前策略:我现在正在考虑使用应用程序域,但我一直无法找到任何非常清晰的代码示例来简单地展示如何加载 DLL、运行方法从该 DLL,并存储来自该 DLL 的结果。应用程序域的概念对我来说仍然很模糊,因为它似乎非常依赖于调用它的代码,因此存储来自这种外部应用程序域的结果对我来说有点困惑。

无论如何,我真的对一个简单的示例感兴趣,该示例演示加载 DLL 并从中运行代码、存储结果、加载同一 DLL 的另一个版本并执行相同的操作。

任何帮助将不胜感激!谢谢!

最佳答案

我建议给 this article一读。他们的示例使用 extern alias指定同一 DLL 的两个不同版本。

在您的 using 部分上方创建别名:

extern alias oldVer;
extern alias newVer;
using System;
.
.
.

添加您的引用并为每个引用指定适当的别名。您可以在其属性中指定要与引用一起使用的别名:

enter image description here

一旦有了别名,您就可以执行以下操作:

Console.WriteLine(oldVer::MyLibrary.MyClass.method());

Console.WriteLine(newVer::MyLibrary.MyClass.method());

关于c# - 在同一运行时运行两个相同的 DLL?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5305455/

相关文章:

c# - 带有 Var Method 输入的方法?

c# - 使用c#打印word文档

.net - .Net 是否有动态 Sql 构建器库?

.net - 与 .net 和 mono 一起使用的最佳对象关系映射框架?

java - 当 Java 进程退出时,JNI DLL 使用的内存是否会返回?

c# - 空条件运算符

c# - 如何将 foreach 循环转换为 lambda 表达式

.net - 使用 ELK 堆栈进行应用程序日志记录

c++ - 将代码移动到另一个 header 后重新定义错误

带资源字典的wpf类库