0

この投稿で、すべての ProxyFactory 依存関係がこの投稿のインターフェイスを使用して削除されたことを読みました。そのため、使用する実装を hibernate.cfg.xml ファイルで指定する必要があります。私はこの構成を持っています:

<?xml version="1.0" encoding="utf-8" ?>
<hibernate-configuration xmlns="urn:nhibernate-configuration-2.2">
  <session-factory>
    <property name="connection.provider">NHibernate.Connection.DriverConnectionProvider</property>
    <property name="connection.driver_class">NHibernate.Driver.SqlClientDriver</property>
    <property name="connection.connection_string">Data Source=.\SQLEXPRESS;Initial Catalog=MYDB;Integrated Security=true</property>
    <property name="dialect">NHibernate.Dialect.MsSql2005Dialect</property>
    <property name='proxyfactory.factory_class'>NHibernate.ByteCode.Castle.ProxyFactoryFactory, NHibernate.ByteCode.Castle</property>
  </session-factory>
</hibernate-configuration>

への参照を追加しましたNHibernate.ByteCode.Castle.dll。MBunit を使用してテストを実行すると、配置フォルダーにNHibernate.ByteCode.Castle.dllまたはを含める必要があるというエラーが表示されますNHibernate.ByteCode.LinFu.dll。これは正しい構成であり、動作するはずです。しかし、それは機能していません。私はこれに多くの時間を費やしてきました。

PS: NHibernate をダウンロードしたとき、NHibernate.ByteCode.Castle プロジェクトがビルドされませんでした。プロジェクトをソリューションに追加してビルドしました。次に、アセンブリを参照しました。

4

1 に答える 1

2

私も少し前まで同じ状況でした。

参照を追加したと言うとき、それは実際のプロジェクトまたはテスト プロジェクトに対するものでしたか? 両方の範囲内にある必要があります。また、参照のプロパティ (F4) で「ローカルにコピー」が true に設定されていることを確認します。

アプリケーションが実行されているディレクトリ内に dll があるかどうかを確認するために私が取った別のアプローチは、構成の前に次を呼び出すことでした。

Console.WriteLine(Directory.GetCurrentDirectory());

私の状況では、ReSharper を使用してテストを実行すると、予想とは異なる場所で実行され、dll が含まれていないことがわかりました。クリーンソリューションを実行して再構築すると、問題が修正されたようです。

これにより、いくつかの確認事項が得られることを願っています。

于 2009-07-21T05:48:20.670 に答える