FluentNHibernate RTM и NHibernate.Linq

У меня была запущена и работала система, в которой использовалась предварительная версия Fluent NHibernate v0.0.1.0 вместе с NHibernate 2.1.0.4000 и NHibernate.Linq 1.0.0.0.

Я только что вставил новые библиотеки DLL Fluent NHibernate RTM и исправил код для критических изменений, но у меня возникает пара проблем, зависящих от того, как я пытаюсь реализовать.

1) Если я не изменю dll NHibernate на ту, которая поставляется с FluentNHibernate, я получаю сообщение об ошибке с жалобой на то, что Fluent NHibernate нацелен на другую версию NHibernate, хотя обе имеют одинаковый номер версии.

Сообщение об исключении выглядит следующим образом: 'Assembly' FluentNHibernate, Version = 1.0.0.593, Culture = нейтральный, PublicKeyToken = 8aa435e3cb308880 'использует' NHibernate, Version = 2.1.0.4000, Culture = нейтральный, PublicKeyToken = aa95f207798dfdb4 ', версия которого выше, чем указанная сборка 'NHibernate, Version = 2.0.1.4000, Culture = нейтральный, PublicKeyToken = aa95f207798dfdb4'

2) Если я изменю dll NHibernate на ту, которая поставляется с FluentNHibernate RTM, моя программа сломается при попытке разрешить сборки в классе, который использует NHibernate.Linq. Он также жалуется на обнаруженные конфликты между зависимыми версиями одной и той же сборки.

Если NHibernate.Linq 1.0.0.0 не может использоваться с Fluent NHibernate, тогда это нормально, и я найду способ обойти это, но мне интересно, нашел ли кто-нибудь способ для них хорошо играть вместе и почему, по-видимому, есть два расходящиеся версии NHibernate с тем же номером версии.

Спасибо,


person Wysawyg    schedule 16.10.2009    source источник
comment
Вы пробовали скомпилировать различные фрагменты из исходного кода?   -  person Michael Maddox    schedule 17.10.2009


Ответы (2)


Ваши номера версий не совпадают в соответствии с этим исключением.

... 'FluentNHibernate' использует 'NHibernate, Version = 2.1.0.4000 ... который имеет более высокую версию, чем указанная сборка' NHibernate, Version = 2.0.1.4000 .. .

2.1.0.4000 vs. 2.0.1.4000

person James Gregory    schedule 22.10.2009

Вы можете попробовать использовать для этого перенаправление привязки сборки, как описано здесь.

Вот пример, который может сработать для вас (хотя и не пробовал)

person elder_george    schedule 16.10.2009
comment
Я пробовал это, но думаю, что из-за того, что номера версий те же, перенаправить не удалось. По крайней мере, я получил точно такую ​​же ошибку после добавления перенаправления в app.config. - person Wysawyg; 16.10.2009
comment
Очень интересно и странно. Вы пытались установить oldVersion в качестве диапазона версий (oldVersion = 2.0.0.0-2.1.65534.65534) - person elder_george; 16.10.2009
comment
Для начала я просто использовал автоматически сгенерированный синтаксис из Visual Studio 2008, поэтому он сделал oldVersion = 0.0.0.0-2.1.0.4000, затем я попробовал пример синтаксиса, который вы предложили, а затем я просто попытался объединить два и использовать диапазон, но все же нет радости. - person Wysawyg; 16.10.2009
comment
Работал у меня. Вот как выглядит мой: ‹dependentAssembly› ‹название сборки = NHibernate publicKeyToken = aa95f207798dfdb4 /› ‹bindingRedirect oldVersion = 2.1.0.4000 newVersion = 2.1.2.4000 /› ‹/dependentAssembly› - person Amir; 14.11.2010