1

Visual Studio 2008で動作し、NHibernate3を使用するSharpArchitectureのバージョンを見つけようとしましたが、失敗しました。NHibernateバージョン3のQueryOverAPIを使用したいと思います。入手可能な最新のビルドは、Visual Studio 2008、MVC 2、およびNHibernate2と互換性のあるsharp-architecture-1.6.0.0-templify-package.zipです。新しいバージョンのSharpArchitectureは、VisualStudio2010とのみ互換性があります。SharpArchitectureのカスタムビルドを作成しようとしました。

「SharpArchitecture1.6FullSource」プロジェクトの参照を変更しました...:

  • NHibernate.Validatorからバージョン1.3.0.4000
  • NHibernateからバージョン3.1.0.4000
  • NHibernate.ByteCode.Castleからバージョン3.1.0.4000へ
  • FluentNHibernateからバージョン1.2.0.694へ
  • Castle.CoreからVersion=2.5.2.0

...プロジェクトのbinディレクトリにある古いdllを新しいdllに置き換えます。次に、ClickToBuild.bat(ダウンロードしたSharp Architecture zipファイルのベースディレクトリにあります)を実行して、ソリューションをビルドしました。ビルドは成功し、すべてのテストに合格しました。次に、自分のプロジェクトのすべてのdllを、作成したばかりの新しいSharpArchitectureのものに置き換えました。私のプロジェクトはコンパイルされますが、実行すると、SharpArch.Data \ NHibernate\NHibernateSession.csは次の例外をスローします。

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

web.configでCastle.CoreのbindingRedirectを使用してみました。

<configuration>
    <runtime>
        <assemblyBinding xmlns="urn:schemas-microsoft-com:asm.v1">
            <dependentAssembly>
                <assemblyIdentity name="Castle.Core" publicKeyToken="407dd0808d44fbdc" culture="neutral"/>
                <bindingRedirect oldVersion="2.5.1.0" newVersion="2.5.2.0"/>
            </dependentAssembly>
        </assemblyBinding>
    </runtime>
</configuration>

しかし、それでも機能しませんでした。

私は正しい方向に進んでいますか?それを機能させるために他に何ができますか?

4

1 に答える 1

1

私はそれをしました。S# に関して NH 2.1 から 3.0 (または最新のものが必要な場合は 3.1) への重大な変更はないため、S# プロジェクトの参照を変更するだけです。

したがって、少し面倒ですが、間違いなく管理できます。

注: Fluent NHibernate などのプロジェクトも NH 3 を使用するように更新する必要があることを忘れないでください。

于 2011-03-17T08:24:14.187 に答える