.NET: Загрузите две версии того же DLL

Я должен загрузить две версии того же DLL для сравнения их выводов. Я предполагаю, что могу использовать AppDomains для этого, но мне нужно некоторое руководство.

10
задан Jonathan Allen 6 January 2010 в 22:57
поделиться

3 ответа

Хорошо, на самом деле это было намного проще, чем я предполагал.

    m_Assembly1 = Reflection.Assembly.LoadFile(IO.Path.Combine(System.Environment.CurrentDirectory, "Old Version\Some.dll"))
    m_Assembly2 = Reflection.Assembly.LoadFile(IO.Path.Combine(System.Environment.CurrentDirectory, "New Version\Some.dll"))

    Console.WriteLine("Old Version: " & m_Assembly1.GetName.Version.ToString)
    Console.WriteLine("New Version: " & m_Assembly2.GetName.Version.ToString)

    m_OldObject = m_Assembly1.CreateInstance("FullClassName")
    m_NewObject = m_Assembly2.CreateInstance("FullClassName")

С этого момента я использовал позднее связывание и / или отражение для запуска моих тестов.

7
ответ дан 4 December 2019 в 00:24
поделиться

Проверьте Activator.CreateInstance() на MSDN. Примеры кода внутри.

http://msdn.microsoft.com/en-us/library/ms224132.aspx

3
ответ дан 4 December 2019 в 00:24
поделиться

Here is a guide to do that:

extern alias oldVer;
extern alias newVer;

и при компиляции:

csc /r:oldVer=Somepath\ClassLibrary.dll /r:newVer=AnotherPath\ClassLibrary.dll program.cs

или в Visual Studio измените поле "aliases" на вкладке свойств ссылок вашего проекта alt text

2
ответ дан 4 December 2019 в 00:24
поделиться
Другие вопросы по тегам:

Похожие вопросы: