NInject и NHibernate, сидящие на дереве

75
6

.. но не k.i.s.s.i.n.g


Я пытаюсь использовать NInject с NHibernate. Через NuGet я использую


    NHibernate v3.1.0.4000
    NHibernate.Castle v3.1.0.4000
    NHibernate.Linq v1.0
    FluentNHibernate v1.2..0.712
    NInject v2.2.1.4

Когда я пытаюсь разрешить класс через NInject, я получаю следующую ошибку:


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


У меня есть следующее в app.config


<assemblyBinding xmlns="urn:schemas-microsoft-com:asm.v1">
<dependentAssembly>
<assemblyIdentity name="NHibernate" publicKeyToken="aa95f207798dfdb4" />
<bindingRedirect oldVersion="2.1.0.4000-2.1.2.4000" newVersion="3.1.0.4000" />
</dependentAssembly>
</assemblyBinding>

Я отмечаю, что загруженный пакет NInject содержит следующее в папке \packages\Ninject.2.2.1.4\lib


    ..\net35-клиент
    ..\net35-Full
    ..\net40-клиент
    ..\net40-Full

Когда я использую NuGet для управления пакетами для конкретной библиотеки, какая из вышеперечисленных версий включена? Это проблема, которая может быть решена путем ручного добавления ссылки на правильную DLL-версию Ninject?


ТИА

спросил(а) 2012-03-21T13:33:00+04:00 8 лет, 2 месяца назад
1
Решение
75

NuGet решает, какая версия используется в зависимости от типа проекта. Например. вы пишете сборку профиля .NET Client, а затем добавляет ссылку на net40-Client

Вы можете ссылаться на любую сборку, которая вам нравится вручную. Но обычно NuGet уже выбирает правильную версию.

ответил(а) 2012-03-21T18:47:00+04:00 8 лет, 2 месяца назад
65

Отбрасывание ссылки на NH.Linq разрешило проблему, предложенную Филом

ответил(а) 2012-03-22T10:23:00+04:00 8 лет, 2 месяца назад
Ваш ответ
Введите минимум 50 символов
Чтобы , пожалуйста,
Выберите тему жалобы:

Другая проблема