簡體   English   中英

將NHibernate 2.1.0.4000遷移到.Net Framework 4

[英]Migrating NHibernate 2.1.0.4000 to .Net Framework 4

我有一個使用NHibernate.dll的項目。 我們將項目移至使用.Net Framework 4.0。 我們使用FxCop和FxCop啟動失敗並出現錯誤

無法解決程序集Nhibernate.dll所以我的猜測是,如果我可以移動NHibernate.dll移動到.Net Framework 4.0,這將做的伎倆。

我試過,它給出了100個錯誤,我使用的ISet是System。**或Ies.Collections.Generic。 我使用了Ies.Collection.Generic,因為Nhibernate有一個對它的引用。

我成功地將其遷移到.Net 4.但是當我訪問我的Web應用程序時,我得到了以下消息。

Inheritance security rules violated while overriding member: 'NHibernate.Cfg.Configuration.GetObjectData(System.Runtime.Serialization.SerializationInfo, System.Runtime.Serialization.StreamingContext)'. Security accessibility of the overriding method must match the security accessibility of the method being overriden.

雖然我根本沒有壓倒一切。 我在互聯網上搜索並發現了幾篇文章,但我不想更改NHibernate代碼因為那不是我的代碼。

為什么我沒有使用最新的NHibernate? 因為當我使用它時,我的項目破了,錯誤是沒有重載方法,它使用3個參數(我的項目使用)

FilterDefinition(string name, string defaultCondition, IDictionary<string, IType> parameterTypes, bool useManyToOne);

現在他們有第四個參數,我不確定結果會是什么。

問題

有人可以幫我解決這個錯誤嗎?

是否有人成功將NHibernate遷移到.Net 4?

謝謝

參考文獻:

http://forums.lhotka.net/forums/t/9914.aspx

重寫成員時違反了繼承安全規則 - SecurityRuleSet.Level2 http://community.codesmithtools.com/Template_Frameworks/f/67/p/12331/47618.aspx#47618

Fluent NHibernate和.NET 4的奇怪覆蓋問題

我知道這不是你想要的答案,但這就是我接近升級的方法:

asp.net 2.0,IIS6,NH 2.1,MVC2項目:

asp.net 4.0,IIS7.5,NH3.3,MVC4

  1. 確保我在項目的大部分時間都進行了集成測試(我不會說這是我花費了很多時間來實現的)。 還可以使用ELMAH之類的錯誤記錄模塊
  2. 升級到NH 3.3,運行測試,推送並離開一周以捕獲任何bug.issues
  3. 升級到SLN .NET 4 (無需重新啟動NH) ,運行測試,推送並離開一周以捕獲任何錯誤
  4. 從MVC2升級到MVC3,運行測試並推送,離開一周
  5. 最后從MVC3升級到MVC4

我個人認為這是最好的方法,當然我沒有給任何一次做太多的痛苦點。 如果沒有集成測試覆蓋大約70%的代碼,我也無法做到這一點。

如果我直接進入.net 4和NH.3.3那么我會處於一個痛苦的世界,因為升級任何項目總會有問題。 我對值得做的建議就是慢慢來。

此外,對於進行集成測試以及未來代碼修改或升級的重要考慮應該是無痛的。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM