У меня есть решение, которое использует NHibernate для генерации схемы БД на основе файлов сопоставления. Я пытаюсь исключить эту функциональность из решения, чтобы ее можно было использовать как отдельное консольное приложение. Я был в состоянии указать путь к файлам сопоставления следующим образом:
NHibernate.Cfg.Configuration cfg = new NHibernate.Cfg.Configuration();
/**/
Assembly contractsAssembly = Assembly.LoadFrom(@"C:\Data\Development\NHibernateTestMappings\Source\DomainModel\Core\bin\Debug\NHibernateTestMappings.Core.Contracts.dll");
Assembly assembly = Assembly.LoadFrom(@"C:\Data\Development\NHibernateTestMappings\Source\DomainModel\Core\bin\Debug\NHibernateTestMappings.Core.dll");
cfg.AddAssembly(contractsAssembly);
cfg.AddAssembly(assembly);
/**/
DirectoryInfo directoryInfo = new DirectoryInfo(@"C:\Data\Development\NHibernateTestMappings\Source\DomainModel\Core\Mappings");
FileInfo[] mappingfiles = directoryInfo.GetFiles("*.hbm.xml");
foreach (FileInfo fi in mappingfiles)
{
cfg.AddFile(fi.FullName);
//cfg.Configure(myAssembly, fi.FullName);
//cfg.AddResource(fi.FullName, myAssembly);
}
Поэтому, когда он достигает точки, где он пытается добавить файл, он жалуется, что не может найти сборку NHibernateTestMappings.Core, потому что в моем автономном приложении нет ссылки на сборку, но каждый файл отображения содержит ссылку до сборки:
<class name="NHibernateTestMappings.Core.Store, NHibernateTestMappings.Core" table="STORE" lazy="false">
Мне нужен способ предоставить конфигурации nhibernate путь к файлу в dll моей сборки, а не добавлять ссылку на него, чтобы я мог просто поменять пути в app.config и сгенерировать мою схему.