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

soo*_*ise 2 .net c# dll

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

我正在寻找:代码只是加载开发DLL,存储结果,然后打开prod dll,存储结果,然后比较两者的结果.

当前策略:我现在正在考虑使用app域,但是我还没有找到任何非常清晰的代码示例,只是展示了如何加载DLL,从该DLL运行方法,以及存储结果DLL.应用程序域的概念对我来说仍然是模糊的,因为它似乎是从它调用的代码外部,因此存储来自这种外部应用程序域的结果对我来说有点混乱.

在任何情况下,我真的对一个简单的例子感兴趣,该例子演示了加载DLL并从中运行代码,存储结果,以及加载同一DLL的另一个版本并执行相同的操作.

任何帮助将非常感激!谢谢!

Abe*_*ler 7

我建议阅读本文.他们的示例使用extern别名来指定同一DLL的两个不同版本.

在使用部分上方创建别名:

extern alias oldVer;
extern alias newVer;
using System;
.
.
.
Run Code Online (Sandbox Code Playgroud)

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

在此输入图像描述

一旦你有别名,你可以做类似的事情:

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

Console.WriteLine(newVer::MyLibrary.MyClass.method());
Run Code Online (Sandbox Code Playgroud)