Я создаю простое консольное приложение для тестирования nhibernate 5.2.7 с использованием. net core 3.1.
Я просто добавляю App.config в свой проект:
NHibernate.Dialect.MsSql2012Dialect дб 100 Это мой основной метод и конфигурация NHibernate: static void Main(string[] args) { var nhConfig = new Configuration().Configure(); var sessionFactory = nhConfig.BuildSessionFactory(); Console.WriteLine("NHibernate Configured!"); Console.ReadKey(); } Когда я запускаю это консольное приложение, выдается следующее исключение: Exception: NHibernate.Cfg.HibernateConfigException: 'An exception occurred during configuration of persistence layer.' Inner: FileNotFoundException: Could not find file 'D:\@git\stufs\Cookbook\ConfigByAppConfig\bin\Debug\netcoreapp3.1\hibernate.cfg.xml'. Исключение составляет throw в следующем операторе: var nhConfig = new Configuration().Configure(); csproj: <Project Sdk="Microsoft.NET.Sdk"> <PropertyGroup> <OutputType>Exe</OutputType> <TargetFramework>netcoreapp3.1</TargetFramework> </PropertyGroup> <ItemGroup> <PackageReference Include="NHibernate" Version="5.2.7" /> <PackageReference Include="System.Data.SqlClient" Version="4.8.1" /> </ItemGroup> <ItemGroup> <None Update="App.config"> <CopyToOutputDirectory>Never</CopyToOutputDirectory> </None> </ItemGroup> </Project> Примечание Если я попытаюсь настроить Nhibernate с помощью кода, он будет работать правильно: static void Main(string[] args) { var nhConfig = new Configuration().DataBaseIntegration(db => { db.Dialect<MsSql2012Dialect>(); db.ConnectionStringName = "db"; db.BatchSize = 100; }); var sessionFactory = nhConfig.BuildSessionFactory(); Console.WriteLine("NHibernate Configured!"); Console.ReadKey(); }
Это мой основной метод и конфигурация NHibernate:
static void Main(string[] args) { var nhConfig = new Configuration().Configure(); var sessionFactory = nhConfig.BuildSessionFactory(); Console.WriteLine("NHibernate Configured!"); Console.ReadKey(); }
Когда я запускаю это консольное приложение, выдается следующее исключение:
Exception: NHibernate.Cfg.HibernateConfigException: 'An exception occurred during configuration of persistence layer.' Inner: FileNotFoundException: Could not find file 'D:\@git\stufs\Cookbook\ConfigByAppConfig\bin\Debug\netcoreapp3.1\hibernate.cfg.xml'.
Exception: NHibernate.Cfg.HibernateConfigException: 'An exception occurred during configuration of persistence layer.'
Inner: FileNotFoundException: Could not find file 'D:\@git\stufs\Cookbook\ConfigByAppConfig\bin\Debug\netcoreapp3.1\hibernate.cfg.xml'.
Исключение составляет throw в следующем операторе:
var nhConfig = new Configuration().Configure();
csproj:
<Project Sdk="Microsoft.NET.Sdk"> <PropertyGroup> <OutputType>Exe</OutputType> <TargetFramework>netcoreapp3.1</TargetFramework> </PropertyGroup> <ItemGroup> <PackageReference Include="NHibernate" Version="5.2.7" /> <PackageReference Include="System.Data.SqlClient" Version="4.8.1" /> </ItemGroup> <ItemGroup> <None Update="App.config"> <CopyToOutputDirectory>Never</CopyToOutputDirectory> </None> </ItemGroup> </Project>
Примечание
Если я попытаюсь настроить Nhibernate с помощью кода, он будет работать правильно:
static void Main(string[] args) { var nhConfig = new Configuration().DataBaseIntegration(db => { db.Dialect<MsSql2012Dialect>(); db.ConnectionStringName = "db"; db.BatchSize = 100; }); var sessionFactory = nhConfig.BuildSessionFactory(); Console.WriteLine("NHibernate Configured!"); Console.ReadKey(); }
Попробуйте это,
Go в свой hibernate.cfg. xml
в свойствах, найдите действие сборки и установите его тип на content и копировать в выходной каталог в Всегда копировать