2009-12-17 53 views
5

我想學習使用流利NHibernate,我正在VS2010 Beta2,編譯對付.NET 4,但我遇到一些問題。如何在.NET 4.0中使用流利NHibernate?

摘要
我的主要問題(目前)是,即使我已經導入所有this guide提到的.dll文件組件的命名空間FluentNHibernate不可用。

這是我做了什麼:
1.我下載的功能NHibernate源從here,提取的.zip和VS.開解一個對話框詢問我是否想將解決方案轉換爲VS2010解決方案,所以我這樣做了。
2.然後我進入了每個項目的屬性,並將其全部配置爲.NET 4編譯,並構建了整個解決方案。
3.我將FluentNHibernate中的所有.dll文件從/bin/Debug/複製到本地硬盤上的新文件夾中。
4.在我的示例項目中,我從新文件夾引用了FluentNHibernate.dllNHibernate.dll

這是我的問題:
如果我在FluentNHibernate在參考文獻列表中單擊鼠標右鍵,選擇「在對象瀏覽器中查看...」,它正確地顯示出來。

現在,當我嘗試創建映射類時,我無法導入FluentNHibernate。此代碼:

using FluentNHibernate.Mapping; 

namespace FluentNHExample.Mappings 
{ 

} 

產生的using語句錯誤,說

類型或命名空間「FluentNHibernate」找不到(是否缺少using指令或程序集引用?)。

FluentNHibernate程序集仍然在我的項目的引用列表中,但是如果我嘗試再次在對象瀏覽器中瀏覽程序集,則無法找到它。

這是什麼造成的?

回答

0

我無法在我的體型來觀察這種行爲,難道與此有關的問題:Weird override problem with Fluent NHibernate and .NET 4

如果是這樣,你可以嘗試http://groups.google.com/group/fluent-nhibernate/browse_thread/thread/ae4013d711d2e4ad作爲一個潛在的修復。

+0

是的 - 你會注意到你鏈接的其他SO帖子也是由我創建的。他們可能是相關的,因爲他們都試圖在.NET 4上運行FNH,但具體問題是不同的。 – 2009-12-21 00:45:02

+0

我在想也許它是反映了intellisense或類似的東西,並遇到同樣的錯誤。 – 2009-12-21 07:31:26

+0

你是對的 - 當我確實解決了另一個問題時,這也起到了作用。 – 2010-04-05 15:08:15

6

我也有類似的問題。顯示

「錯誤列表」窗口:

類型或命名空間名稱「FluentNHibernate」找不到(是否缺少using指令或程序集引用?)

但是,「輸出」窗口顯示詳細信息:

警告MSB3253:引用程序集「FluentNHibernate」無法解析,因爲它依賴於「System.Data.OracleClient,Version = 4.0.0」。0,Culture = neutral,PublicKeyToken = b77a5c561934e089「,它不在當前的目標框架」.NETFramework,Version = v4.0,Profile = Client「。請刪除不在目標框架中的組件的引用或考慮重新定位你的項目

在我的情況。我創造這是由默認的定位「.Net Framework 4 Client Profile」控制檯應用程序項目,所以更改爲「.Net Framework 4」固定的問題對我來說

0

是不是有更好的辦法來解決這個問題?

我不想引用System.Data.OracleClient。所以我如果我甚至不需要這個引用,就不應該把目標放在完整的.Net框架上。

我無法定位.Net框架的客戶端配置文件,但在某處添加了編譯器警告異常,以便它跳過該警告嗎?我知道它不會導致運行時問題,因爲我不使用Oracle。

我得到同樣的問題,說也有一個依賴System.Web。同樣的故事,這是一個Windows WPF應用程序,所以我不需要System.Web。難道我不能僅僅瞄準客戶端配置文件並以某種方式說服編譯器繼續前進嗎?

感謝, 休

編輯:我想通了這一點!我不得不自己編譯NHibernate。在Visual Studio中打開2.1.2代碼,並刪除所有說「Oracle」或「System.Web」的內容,然後最終生成它。我現在不必定位完整的.Net Framework。

0

我們有這個問題,如果我們從引用NHibernate項目的項目中刪除了obj和bin文件夾,問題就消失了。

所以我們有'project1',它使用NHibernate生成project1.dll。 'project2'引用project1.dll。

如果我們從project2中刪除了obj/bin文件夾,問題就解決了。

不能說爲什麼,但我們的解決方案現在編譯好。

Mike。