0

NHibernate.dllを使用するプロジェクトがあります。プロジェクトを.NetFramework4.0を使用するように移動しました。FxCopを使用すると、FxCopが失敗し始め、エラーが発生しました

アセンブリNhibernate.dllを解決できなかったので、NHibernate.dllを.NetFramework4.0に移動してうまくいくかどうかを推測しました。

試してみましたが、使用しているISetがSystem。**またはIes.Collections.Genericであるというエラーが100件発生しました。Nhibernateに参照があるため、Ies.Collection.Genericを使用しました。

.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);

現在、4番目のパラメーターがありますが、結果がどうなるかはわかりません。

質問

誰かがこのエラーで私を助けてくれますか?

誰かがNHibernateを.Net4に正常に移行しましたか?

ありがとう

参照:

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

メンバーのオーバーライド中に継承セキュリティルールに違反しました-SecurityRuleSet.Level2http ://community.codesmithtools.com/Template_Frameworks/f/67/p/12331/47618.aspx#47618

FluentNHibernateおよび.NET4での奇妙なオーバーライドの問題

4

2 に答える 2

1

私はこれがあなたが探している答えではないことを知っていますが、これは私がアップグレードにアプローチした方法です:

asp.net 2.0、IIS6、NH 2.1、MVC2プロジェクト:

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

  1. プロジェクトの大部分で統合テストを実施していることを確認してください(これが私自身の達成に多くの時間を要したことであるとは思いません)。ELMAHのようなエラーロギングモジュールも使用してください
  2. NH 3.3にアップグレードし、テストを実行し、ライブでプッシュして1週間放置し、バグを検出します。
  3. SLN .NET 4にアップグレードし(NHの再コンパイルは不要)、テストを実行し、ライブでプッシュして1週間放置し、バグを検出します。
  4. MVC2からMVC3にアップグレードし、テストを実行してライブでプッシュし、1週間放置します
  5. 最後にMVC3からMVC4にアップグレードします

個人的には、これが最善のアプローチであり、一度にあまり多くのことをしなかったので、確かに痛みのポイントが少なくなりました。また、コードの約70%をカバーする統合テストがなければ、これを行うことはできませんでした。

.net 4とNH.3.3に直接アクセスした場合、プロジェクトのアップグレードには常に問題があるため、私は苦痛の世界にいました。何が価値があるかについての私のアドバイスは、ゆっくりとそれを行うことです。

また、将来のコードの変更やアップグレードは簡単なはずだという統合テストを行うことについてもよく考えてください。

于 2012-09-22T06:12:14.207 に答える
1

この下のリンクは、どのoskarがコメントしたかを助けてくれました

https://github.com/oskarb/nhibernate-core/commit/d5f10c538440c127341159b31bff242ff9d687af

于 2012-09-26T11:04:40.680 に答える