プロジェクトを作成し、NuGet を使用して Nhibernate.Search をインストールしました。インストール中に、NuGet は Lucene.Net もダウンロードします。
NuGet では、次のパッケージをダウンロードしてインストールしました
- FluentNHibernate.dll: 1.3.0733
- NHibernate.dll: 3.3.1.4000
- NHibernate.Search.dll: 2.0.2.4000
- Lucene.Net.dll: 2.9.4.1
すべての依存関係は NuGet によって管理されます。しかし、次のコードを実行したとき
using FluentNHibernate.Cfg;
using FluentNHibernate.Cfg.Db;
using NHibernate;
using NHibernate.Search.Event;
using NHibernate.Search.Store;
namespace Test {
public class NHibernateSearchSessionProvider {
private static ISessionFactory sessionFactory;
private static object syncRoot = new object();
public static ISessionFactory SessionFactory {
get {
lock (syncRoot) {
if (sessionFactory == null) {
sessionFactory = createSessionFactory();
}
return sessionFactory;
}
}
}
private static ISessionFactory createSessionFactory() {
var config = Fluently.Configure()
.Database(MsSqlConfiguration.MsSql2008
.ConnectionString(c => c.FromConnectionStringWithKey("HomeDB"))
)
.Mappings(m => m.FluentMappings.AddFromAssemblyOf<UserAccountMap>())
.BuildConfiguration();
// Add NHibernate.Search listeners
config.SetListener(NHibernate.Event.ListenerType.PostUpdate, new FullTextIndexEventListener());
config.SetProperty("hibernate.search.default.indexBase", "~/LuceneIndex");
return config.BuildSessionFactory();
}
}
}
例外メッセージCould not load file or assembly 'Lucene.Net, Version=2.9.2.2, Culture=neutral, PublicKeyToken=null' or one of its dependencies. The located assembly's manifest definition does not match the assembly reference. (Exception from HRESULT: 0x80131040)
このバージョンの NHibernate.Search は、新しいものではなく Lucene.Net 2.9.2.2 をまだ使用しているようです。すべての依存関係はいつでも手動で修正できますが、私は NuGet を使用することを好みます。
コードを機能させるにはどうすればよいですか?
提案をありがとう