NHibernate Profiler не работает в. NET Core 3.1 - PullRequest
1 голос
/ 27 апреля 2020

Я пытаюсь использовать NHibernate Profiler в. NET Core 3.1 MVC приложении, и хотя я пытался установить то, что профилировщик настаивает на том, чтобы это было его работой (через nuget), я все еще не могу получить NHibernate Профилировщик работает с. NET Core 3.1.

Я начал с добавления ссылки на HibernatingRhinos.Profiler.Appender в проект и попытался вызвать NHibernateProfile.Initialize () из Program.Main так:

public class Program
{
    public static void Main(string[] args)
    {
        HibernatingRhinos.Profiler.Appender.NHibernate.NHibernateProfiler.Initialize();
        CreateHostBuilder(args).Build().Run();
    }
...
}

Как и конструктор автозагрузки

public Startup(IConfiguration configuration)
{
    HibernatingRhinos.Profiler.Appender.NHibernate.NHibernateProfiler.Initialize();
}

Первое полученное мной исключение:

System.IO.FileNotFoundException: Could not load file or assembly 'System.Configuration.ConfigurationManager, Version=4.0.3.0, Culture=neutral, PublicKeyToken=cc7b13ffcd2ddd51'. The system cannot find the file specified.

Я добавил эту ссылку через nuget.

Следующее исключение, которое я получил, было:

System.IO.FileNotFoundException: Could not load file or assembly 'System.CodeDom, Version=4.0.3.0, Culture=neutral, PublicKeyToken=cc7b13ffcd2ddd51'. The system cannot find the file specified.

Я добавил ссылку через nuget.

Последнее исключение, которое я получил, было расплывчато:

System.PlatformNotSupportedException: Operation is not supported on this platform.

NHibernate Profiler утверждает, что работает. NET Ядро для версии 5.0 (я использую сборку 5044) здесь: http://hibernatingrhinos.com/products/NHProf enter image description here

но я не могу заставить его работать.

Я не пробовал запускать его в режиме, в котором вам не нужно менять код приложения , но я не понимаю, в чем смысл проходить через все затруднения log 4net когда я МОГУ изменить код своего приложения (и в документах предлагается, чтобы вы все равно использовали вызов .Initialize ())

Я уверен, что что-то делаю неправильно и / или что-то упущено. Любая помощь будет оценена

1 Ответ

2 голосов
/ 27 апреля 2020

Так что я был прав, я что-то делал неправильно.

Я безрассудно копировал HibernatingRhinos.Profiler.Appender.dll в основной проект. net вместо того, чтобы использовать nuget для получения пакета NHibernateProfiler и добавления других необходимых зависимостей и спецификаций c для меня!

Я пошел и взял этот пакет / версию через nuget: enter image description here

и все работает.

...