.NET скомпилированный сторонний конфликт ссылок DLL - PullRequest
2 голосов
/ 27 сентября 2010

Я использую Umbraco (.NET CMS), и у него есть ссылка на конкретную версию DLL (см. 1 Справочник Umbraco ниже). Это нормально, пока я не попробую подключиться к .NET MailChimp API, который ссылается на другую версию той же DLL (см. 2 PerceptiveMCAPI ниже).

Я могу придумать пару вариантов решения этой проблемы

а. Получить источник Umbraco или PerceptiveMCAPI и ссылаться на одну и ту же версию DLL, действительно не хочу делать это по причинам совместимости

б. Дамп 2 DLL в GAC, я хочу избежать этого, поскольку я вижу проблемы развертывания, возникающие, если кто-то забывает (я знаю, что мы должны иметь автоматическое развертывание, но время ограничено)

Я помню, что есть третий вариант, чтобы указать, какую версию DLL использовать в конфигурации. Это возможно и каков код для этого?

1 Umbraco Reference

// Assembly Reference CookComputing.XmlRpcV2

Version: 2.4.0.0 
Name: CookComputing.XmlRpcV2, Version=2.4.0.0, Culture=neutral, PublicKeyToken=a7d6e17aa302004d 

2 PerceptiveMCAPI

// Assembly PerceptiveMCAPI, Version 1.2.4.3


Location: C:\Work\AEGPL\AEGPL_Website\bin\PerceptiveMCAPI.dll 
Name: PerceptiveMCAPI, Version=1.2.4.3, Culture=neutral, PublicKeyToken=null 
Type: Library 

1 Ответ

2 голосов
/ 27 сентября 2010

Это точно причина существования GAC. Единственный другой обходной путь, о котором я могу подумать, - это поместить эти DLL в подкаталоги, чтобы CLR не мог их найти и реализовать AppDomain.AssemblyResolve. Теперь вы можете поддерживать этот код для каждого обновления новой версии.

...