17

外部参照に NuGet を使用するようにプロジェクトを更新しました。NHibernate への参照を追加しました。これにより、NH の他のすべての依存関係が追加されました。FluentNHibernate を追加しました。NH と Fluent 用にダウンロードされた NH のバージョンが一致しません。NuGet は、NH バージョン 3.0.0.0.2001 に依存する FNH のバージョンを 1.1.1.694 として表示しますが、NH はバージョン 3.0.0.4000 として表示されます。

アプリを実行すると、次のメッセージが表示されます。

ファイルまたはアセンブリ 'NHibernate, Version=3.0.0.2001, Culture=neutral, PublicKeyToken=aa95f207798dfdb4' またはその依存関係の 1 つを読み込めませんでした。見つかったアセンブリのマニフェスト定義がアセンブリ参照と一致しません。(HRESULT からの例外: 0x80131040)

FNH のサイトからもダウンロードしてみましたが、FNH のバージョンは 1.1.0.685 で、2.1.2.4000 に依存しています。

NuGet を修正できますか、それとも config で BindingRedirect を使用する必要がありますか?

4

1 に答える 1

18

あなたは運がいいです!NuGet には、まさにこのシナリオのためのコマンドがあります (将来的にはさらに自動化する予定ですhttp://blog.davidebbo.com/2011/01/nuget-versioning-part-3-unification-via.html )。最初にプロジェクトをビルドし、パッケージ マネージャー コンソールから次のように入力します。

PM> Add-BindingRedirect

そして、最小限のバインディング リダイレクトのセットを config に追加して、すべてが機能するようにします。

于 2011-01-24T09:02:42.803 に答える