2011-03-14 147 views
2

問題:我在DLL形式開發代碼和生產代碼,我希望能夠比較從每個結果。這一切都需要在相同的運行時間內發生。在相同的運行時間運行兩個相同的DLL?

我在尋找什麼:只需加載開發DLL,存儲結果,然後打開prod dll,存儲結果,然後比較兩者結果的代碼。

當前策略:我正在考慮使用應用程序域,但我一直未能找到任何非常明確的代碼示例,它們只是演示如何加載DLL,從該DLL運行方法,並存儲該DLL的結果。應用程序域的概念對我來說仍然很模糊,因爲它似乎在被調用的代碼非常外在,所以從這種外部應用程序域存儲結果對我而言有點混亂。

在任何情況下,我會很感興趣的一個簡單的例子演示加載DLL和它運行的代碼,存儲結果,並加載同一個DLL的另一個版本,並做同樣的事情。

任何幫助,將超級感謝!謝謝!

+0

?如果它可以轉換爲文本格式,你不能把它寫入一個文件並比較這些文件嗎? [引用不同版本的相同組件的]的 – Davy8 2011-03-14 22:39:56

+0

可能重複(http://stackoverflow.com/questions/223195/referencing-different-versions-of-the-same-assembly) – NotMe 2011-03-14 22:41:53

+1

另外:請參見http://博客。 msdn.com/b/abhinaba/archive/2005/11/30/498278.aspx – NotMe 2011-03-14 22:42:24

回答

7

我會推薦給this article讀。他們的示例使用extern alias來指定同一個DLL的兩個不同版本。

創建別名您使用部分上面:

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

添加您的引用,並給每一個合適的別名。您可以指定與參考使用的別名,在它的屬性:一旦你在的地方,你可以這樣做別名

enter image description here

:你如何比較的結果

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

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

我跟着你的步驟,建立了一堆代碼,然後運行它,我得到以下錯誤:外部別名'MyAlias'沒有在/參考選項中指定。有任何想法嗎?謝謝! – sooprise 2011-03-15 15:06:49

+0

如果你在你的項目屬性下編譯選項,你應該能夠在那裏指定別名,我認爲這將解決這個錯誤。 – 2011-03-15 19:08:43

相關問題