Вот проблема.У меня есть две разные технологии, требующие драйверов для доступа к базе данных PostgreSQL.
- Telerik ORM (2011.2.x)
- Эльма (последний на момент написания этого вопроса)
Оба используют драйвер Npgsql, однако оба AFAIK используют две разные версии драйвера.
- Elmah: Npgsql 2.0.6.0
- Открытый доступ: Npgsql2.0.10.0 (я не уверен, как она загружает DLL, но она поставляется с тем, что я использую в настоящее время)
, а также:
- оба драйвера, по-видимому, используют одну и ту же версию, хотя бы по количеству, Mono.Security.dll 2.0.0.0
Сейчас у меня запущен локальный проект, и похожеработая на обоих фронтах, то есть Open Access использует свой драйвер (вероятно, из GAC, поскольку я установил на свою рабочую машину установщик Telerik, но проект никогда не ссылался на драйверы PostgreSQL), и Elmah работает с его драйвером (упоминается в проекте).Вполне возможно, что Telerik, возможно, на самом деле использует драйвер Npgsql в проекте, но я не уверен, как проверить эту возможность.
Однако на производстве у меня нет драйверов Telerik, загруженных в GACУ меня все мои dll помещены в папку bin
сайта.Обе библиотеки названы одинаково, и переименование старого драйвера не работает локально.
Поэтому мне интересно, что мне следует делать в этот момент.
Elmah - источник с открытым исходным кодомЯ знаю, что могу получить исходный код (вместо использования пакета NuGet) и изменить его, чтобы он ссылался на более новый драйвер.Но, честно говоря, я не хочу иметь дело с перекомпиляцией Elmah, если я хочу обновить Telerik.
Мне интересно, может быть, проблема только в том, что последняя версия Elmah связана с драйвером в гораздо более строгом режиме?чем мода должна быть?Я читал о различных формах линковки, но недостаточно, чтобы понять, о чем я говорю. Однако, если это так, то может быть лучше скомпилировать его так, что (возможно) ему понадобится только 2.0.x или что-то в этом роде.и использовать то, что доступно, вместо использования какой-либо абсолютной версии.
Возможно ли это? Есть еще лучший способ справиться с этим? Спасибо.