web-dev-qa-db-ja.com

NuGetでNHibernate3.2をインストールする

私はNHibernateを初めて使用し、NuGetを使用してFluentNHibernateとNHProfを起動して実行しようとしています。この記事を読んだ後( http://gurustop.net/blog/2011/03/13/nhibernate-3-1-0-on-nuget-important-details )、v3.1のようです直接インストールしないでください。ただし、v3.2ではそのような警告は表示されません。

NuGetを使用してNHibernate3.2とNHProfを正常にインストールした後、「すでに新しいバージョンのNHibernateを参照している」と表示されているため、FluentNHibernateをインストールできません。

また、アプリを実行すると、「ファイルまたはアセンブリ 'NHibernate.ByteCode.Castle'またはその依存関係の1つを読み込めませんでした」というエラーが表示されます。次のリンク( NHibernateでファイルまたはアセンブリを読み込めませんでした )は、いくつかの追加のアセンブリをインストールすることを提案しています。これは、最初にNuGetを使用して回避したいと思っていたものです。

この時点で、NuGetのパッケージに互換性がないように見えるので、NHForgeの手順に従って、物事を起動して実行する方が簡単でしょうか?

32
RuairiQ

NHibernate 3.2には、独自のプロキシファクトリが付属しています。構成ファイルを使用している場合は、proxyfactory構成プロパティを削除する必要があります。

デフォルトで使用しているFluentNHibernateのバージョンは、NHibernate.ByteCode.Castleを使用していると思います。その場合、組み込みのNHibernate3.2プロキシファクトリでその設定をオーバーライドする必要があります。

.ProxyFactoryFactory("NHibernate.Bytecode.DefaultProxyFactoryFactory, NHibernate") 
29
Jim Geurts

Fluent NHibernateの各バージョンは、正確なバージョンのNHibernate(Fluent NHibernateパッケージに含まれています)を使用します。NHibernateパッケージを削除し、FluentNHibernateのみを追加する必要があります。

11
Catalin DICU

GUIの代わりにNugetPackage Manager Consoleを使用してパッケージを取得する場合(Install-Package FluentNHibernate)、NHibernate3.2と互換性のあるバージョン1.3.0.717を取得します。 enter image description here

私は試しましたが、うまく機能しています。私はすでにこのリンクでこれに答えました: どのバージョンのfluent nhibernateがnhibernate3.2と互換性がありますか

6
Ajadex

FluentNhibernateをNHibernate3.2で動作させるために、構成ファイルでこの構造を使用しています

 <runtime>
    <assemblyBinding xmlns="urn:schemas-Microsoft-com:asm.v1">
      <dependentAssembly>
        <assemblyIdentity name="NHibernate" publicKeyToken="aa95f207798dfdb4" culture="neutral" />
        <bindingRedirect oldVersion="0.0.0.0-3.2.0.1001" newVersion="3.2.0.1001" />
      </dependentAssembly>
    </assemblyBinding>
  </runtime>
3
AlfeG

NHibernate 3.2には、独自のマッピング構成(Conform)が付属しています。 FluentNHibernateはこの結果としてNHibernate3.1でのみ機能し、3.2を使用することはできません(私は同じ問題を抱えていました)。したがって、3.1を手動でダウンロードし、NuGetで3.1を直接使用できない限り、それを参照する必要があります。

もう1つのオプションは、3.2へのすべての参照を削除してから、NuGetからFluentNHibernateをインストールすることです。そうすると、依存関係リゾルバーが起動し、NHibernate3.1が自動的に含まれます。

0
Kezzer