Есть ли способ заставить Nhibernate 3 работать с Sharp Architecture с помощью Visual Studio 2008? - PullRequest
1 голос
/ 16 марта 2011

Я пытался найти версию Sharp Architecture, которая работает с Visual Studio 2008 и использует NHibernate 3, но безуспешно.Я хочу использовать API QueryOver из NHibernate версии 3. Последняя доступная сборка, которую я могу найти, - sharp-architecture-1.6.0.0-templify-package.zip, совместимая с Visual Studio 2008, MVC 2 и NHibernate 2. Всеболее новая версия Sharp Architecture совместима только с Visual Studio 2010. Я попытался создать пользовательскую сборку Sharp Architecture:

Я изменил ссылки в проекте «SharpArchitecture 1.6 Full Source» ...:

  • NHibernate.Validator до версии 1.3.0.4000
  • NHibernate до версии 3.1.0.4000
  • NHibernate.ByteCode.Castle до версии 3.1.0.4000
  • FluentNHibernate дляВерсия 1.2.0.694
  • Castle.Core to Version = 2.5.2.0

... путем замены старых dll новыми в каталоге bin проектов.Затем я запустил ClickToBuild.bat (расположенный в загруженном базовом каталоге zip-файлов Sharp Architecture), чтобы построить решение.Сборка прошла успешно и все тесты пройдены.Затем я заменил все библиотеки в моем собственном проекте новыми Sharp Architecture, которые я только что построил.Мой проект компилируется, но когда я запускаю его, SharpArch.Data \ NHibernate \ NHibernateSession.cs выдает следующее исключение:

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

Я попытался использовать bindingRedirect для Castle.Core в моем web.config:

<configuration>
    <runtime>
        <assemblyBinding xmlns="urn:schemas-microsoft-com:asm.v1">
            <dependentAssembly>
                <assemblyIdentity name="Castle.Core" publicKeyToken="407dd0808d44fbdc" culture="neutral"/>
                <bindingRedirect oldVersion="2.5.1.0" newVersion="2.5.2.0"/>
            </dependentAssembly>
        </assemblyBinding>
    </runtime>
</configuration>

, но это все равно не сработало.

Я на правильном пути?Что еще я могу сделать, чтобы заставить его работать?

1 Ответ

1 голос
/ 17 марта 2011

Я сделал это. Вам просто нужно изменить ссылки в проектах S #, поскольку нет никаких серьезных изменений с NH 2.1 на 3.0 (или 3.1, если вы хотите самый последний) в отношении S #.

Это будет немного громоздко, но определенно управляемо.

примечание: не забывайте, что проекты, такие как Fluent NHibernate, также должны быть обновлены для использования NH 3.

...