FluentNHibernate и NuGet, проблема с версией NH

Я только что обновил свой проект, чтобы использовать NuGet для внешних ссылок. Я добавил ссылку на NHibernate, который добавил все другие зависимости для NH. Затем я добавил FluentNHibernate. Версии NH, загруженные для NH и Fluent, не совпадают. NuGet показывает версию FNH как 1.1.1.694 в зависимости от версии NH 3.0.0.0.2001, а NH - как версию 3.0.0.4000.

Когда я запускаю приложение, я получаю следующее сообщение:

Не удалось загрузить файл или сборку NHibernate, Version = 3.0.0.2001, Culture = нейтральный, PublicKeyToken = aa95f207798dfdb4 или одну из его зависимостей. Определение манифеста обнаруженной сборки не соответствует ссылке на сборку. (Исключение из HRESULT: 0x80131040)

Я также попытался загрузить с сайта FNH, но это показывает, что версия на FNH - 1.1.0.685, которая зависит от 2.1.2.4000.

Можете ли вы исправить NuGet, или я должен просто использовать BindingRedirect в конфигурации?


person epitka    schedule 23.01.2011    source источник
comment
Лично я отказался от NuGet, репозитории повсюду и устарели.   -  person Phill    schedule 24.01.2011
comment
@ Фил: Правда? Я просто переключился, думая, что мне будет проще управлять своими зависимостями.   -  person epitka    schedule 24.01.2011
comment
Большинство пакетов обновлены. У некоторых еще нет официальных владельцев, но это быстро меняется по мере роста принятия.   -  person David Ebbo    schedule 26.01.2011


Ответы (1)


Тебе повезло! В NuGet есть команда только для этого сценария (который мы планируем сделать более автоматическим в будущем http://blog.davidebbo.com/2011/01/nuget-versioning-part-3-unification-via.html). Сначала соберите свой проект и в консоли диспетчера пакетов введите:

PM> Add-BindingRedirect

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

person davidfowl    schedule 24.01.2011
comment
На самом деле это команда Add-BindingRedirects в версиях до v1.1 ... s отсутствует. - person cdeszaq; 24.01.2011
comment
@cdeszaq: Придется попробовать. На данный момент я просто вручную добавил перенаправление в файл конфигурации. Полезно знать об этом варианте. - person epitka; 24.01.2011
comment
К вашему сведению, команда была множественного числа в 1.0, но была изменена на единственное число в 1.1 (для меня более PowerShell «правильный»). - person David Ebbo; 26.01.2011
comment
Мне это совсем не нравится, менеджеры пакетов должны быть на этом! - person mxmissile; 01.02.2011
comment
да, определенно должен быть автоматическим, если нет серьезных причин не делать этого. - person RodH257; 25.02.2011
comment
У меня не сработало, мне пришлось вручную добавить перенаправления привязки в свой файл конфигурации. - person Pawel Krakowiak; 02.07.2011
comment
Какие именно шаги вам не подходят? Какая версия NuGet у вас установлена? - person davidfowl; 02.07.2011
comment
Это не сработало для меня - в итоге я загрузил FluentBinaries и импортировал их вручную - позор, что все закончилось так - из более чем 30 установленных пакетов это FluentNh - единственный, который так облажался! - person reach4thelasers; 04.02.2012