2009-08-31 7 views
1

シャープアーキテクチャソリューション(SharpArchitecture_1.0_RTM_build_486)(私のローカルコピー)を更新し、NHibernate 2.1.0.3001 dllの代わりにNHibernate 2.1.0.4000を参照しました。 。私はSharp Architectureソリューションで他のすべてのNHibernate関連のリファレンスも更新しました。シャープアーキテクチャライブラリを再コンパイルして2.1.1.3001の代わりにNHIbernate 2.1.0.4000を使用する

シャープアーキテクチャを再構築し、NHibernateバージョン2.1.0.4000を使用してすべてのテストに合格することができました。私は、提供するビルドスクリプトを使用しました。

私のアプリケーションで参照(NHibernateと再コンパイルされたSharp dlls)を更新してNHibernateを初期化しようとすると、アプリケーションは "ファイルやアセンブリをロードできませんでした。" NHibernate、Version = 2.1.0.3001、Culture = neutral、PublicKeyToken = aa95f207798dfdb4 'またはその依存関係の1つアセンブリされたアセンブリのマニフェスト定義がアセンブリ参照と一致しません(HRESULTの例外:0x80131040) "

このエラーはNHibernateSession.Initメソッドでスローされます。呼び出しアセンブリはSharpArch.Dataです。

シャープアーキテクチャを新しいDLLで再コンパイルするだけでなく、実行する必要があることはありますか?シャープアーキテクチャは、Hibernate 2.1.0.3001に対して強く型付けされています。

私がこれをやっている理由は、アプリケーションにNHibernate.Cacheを含めるためです。 NHibernate.CacheはNHibernate 2.1.0.4000(NHibernate-2.1.0.GA-bin)に対してコンパイルされます。

答えて

0

すべての2.1.0.3001バージョンのDLLをPCから探してください。 GAC)し、再コンパイル/再実行します。うまくいけば、そのDLLのバージョンを参照しようとしていたものからエラーが発生し、DLLの新しい2.1.0.400バージョンを使用するようにその参照を更新することができます。

5

system-webタグを開く前に、web.configファイル内で次の行を追加します。

<runtime> 
    <assemblyBinding xmlns="urn:schemas-microsoft-com:asm.v1"> 
    <dependentAssembly> 
     <assemblyIdentity name="NHibernate" publicKeyToken="AA95F207798DFDB4" culture="neutral"/> 
    <bindingRedirect oldVersion="0.0.0.0-2.1.0.3001" newVersion="2.1.0.4000"/> 
    </dependentAssembly> 
</runtime> 

これで問題は解決します。

+0

でなければなりません。ありがとうございました。 – Srdjan

+0

これは助けてくれてうれしいです。 – JohnL

+0

Srdjan、実際に問題が解決された場合、正解であった人々への今後の援助を指示できますか? – JohnL

1

同様の質問がない(あまりにもin the s# groupとし、by Tom Cabanski

あなたは再構築する必要があると思いますので、両方の元S#-archソースに行われる必要が名前の変更があることがありますが尋ねてきましたフレームワーク上に構築された独自のソリューションのみ)。

これらの変更はまだトランクには書かれていないので、あなたが本当に必死でなければ待つ価値がありますか?

+0

最新のライブラリとの統合を含むGitHubのフォークが追加されました。 – rohancragg

0

newVersion="2.1.0.4000"は、この問題を修正しnewVersion="2.1.1.4000"

関連する問題