Как я использую Быстрый NHibernate с.NET 4.0?

Я хочу учиться использовать Быстрый NHibernate, и я работаю в VS2010 Beta2, компилируя против.NET 4, но я испытываю некоторые проблемы.

Сводка
Моя основная проблема (в данный момент) состоит в том что пространство имен FluentNHibernate не доступно даже при том, что я импортировал все .dll блоки, упомянутые в этом руководстве.

Это - то, что я сделал:
1. Я загрузил Быстрый источник NHibernate отсюда, извлек .zip и открыл решение в VS. Диалоговое окно спросило меня, если я хотел преобразовать решение решения VS2010, таким образом, я сделал.
2. Я затем вошел в свойства каждого проекта и настроил всех их для компиляции для.NET 4 и создал все решение.
3. Я скопировал все .dll файлы с /bin/Debug/ в FluentNHibernate к новой папке на моем локальном жестком диске.
4. В моем проекте в качестве примера я сослался FluentNHibernate.dll и NHibernate.dll от новой папки.

Это - моя проблема:
Если я щелкаю правой кнопкой по FluentNHibernate в Ссылочном списке и избранное "Представление в Обозревателе объектов...", это обнаруживается правильно.

Теперь, когда я пытаюсь создать отображающийся класс, я не могу импортировать FluentNHibernate. Этот код:

using FluentNHibernate.Mapping;

namespace FluentNHExample.Mappings
{

}

генерирует ошибку на операторе использования, высказывании

Тип или пространство имен 'FluentNHibernate' не могли быть найдены (Вы пропускаете директиву использования или ссылку на сборку?).

FluentNHibernate блок находится все еще в списке Ссылок моего проекта, но если я пытаюсь просмотреть блок в Обозревателе объектов снова, это не может быть найдено.

Что вызывает это?

5
задан Tomas Aschan 17 December 2009 в 21:42
поделиться

3 ответа

Я не могу наблюдать такое поведение в моей сборке , могло ли это быть связано с этой проблемой: Странная проблема переопределения с Fluent NHibernate и .NET 4

Если это так, вы можете попробовать http://groups.google.com/group/fluent-nhibernate/browse_thread / thread / ae4013d711d2e4ad в качестве потенциального исправления.

0
ответ дан 14 December 2019 в 13:38
поделиться

У меня тоже была аналогичная проблема.

Отображается окно «Список ошибок»:

Не удалось найти тип или имя пространства имен 'FluentNHibernate' (вы пропустили директиву using или ссылку на сборку?)

Но в окне «Вывод» отображалась подробная информация :

предупреждение MSB3253: указанная сборка «FluentNHibernate» не может быть разрешена, поскольку она зависит от «System.Data.OracleClient, Version = 4.0.0.0, Culture = нейтральный, PublicKeyToken = b77a5c561934e089», которого нет в текущем целевая платформа ".NETFramework, Version = v4.0, Profile = Client". Удалите ссылки на сборки, не входящие в целевую платформу, или подумайте о перенацеливании вашего проекта.

В моем случае; Я создал проект консольного приложения, который по умолчанию был нацелен на « .Net Framework 4 Client Profile », поэтому изменение на « .Net Framework 4 » для меня исправлено.

6
ответ дан 14 December 2019 в 13:38
поделиться

Нет ли лучшего способа решить эту проблему?

Я не хочу ссылаться на System.Data.OracleClient. Поэтому я не должен использовать весь .Net framework, если мне даже не нужна эта ссылка.

Не могу ли я нацелиться на Client Profile фреймворка .Net, но добавить где-нибудь исключение предупреждения компилятора, чтобы он просто пропустил это предупреждение? Я знаю, что это не вызовет проблем во время выполнения, потому что я не использую Oracle.

Я получаю идентичную проблему, в которой говорится, что есть также зависимость от System.Web. Та же история, но это приложение для Windows WPF, поэтому мне не нужен System.Web. Не могу ли я просто нацелиться на профиль клиента и как-то убедить компилятор продолжать работу?

Спасибо, Хью

EDIT: Я разобрался с этим! Хотя мне пришлось компилировать NHibernate самостоятельно. Открыл код 2.1.2 в Visual Studio и удалил все, что говорит "Oracle" или "System.Web", и в итоге получил сборку. Теперь мне не нужно устанавливать полный .Net Framework.

0
ответ дан 14 December 2019 в 13:38
поделиться
Другие вопросы по тегам:

Похожие вопросы: