Приемники Serilog (файлы dll) не копируются в приложение iOS - PullRequest
0 голосов
/ 24 марта 2020

Я пытаюсь использовать Serolog с Serilog.Sinks.Xamarin (v 0.1.37) и Serilog.Sinks.Elasticsearch (v 8.0.1) в приложении Xamarin Forms iOS. Все nugets установлены как в проекте Xamarin Forms, так и в проекте Xamarin iOS.

Когда я пытаюсь создать Logger (либо в коде, либо из конфигурации), он не может сказать, что «Не удалось найти файл Serilog.Sinks.Elasticsearch ". Если я удаляю Serilog.Sinks.Elasticsearch, то он жалуется на другой.

Я немного покопался и вижу, что библиотеки Sink скопированы в '' '\ bin \ iPhoneSimulator \ Debug '' '

enter image description here

Но их нет в приложении, пока оно работает в симуляторе:

enter image description here

Есть идеи почему?

1 Ответ

0 голосов
/ 26 марта 2020

Если вы добавляете Serilog Sinks и конфигурируете их в файле конфигурации, затем создаете конфигурацию Serilog из этого файла, затем создаете регистратор Serilog из конфигурации Serilog ==> в приложении нет прямого кода, который ссылается на Sinks DLL -> они будут удалены из приложения. Это может произойти с любыми .dll, которые динамически загружаются во время выполнения. Чтобы предотвратить это, вы должны сделать фиктивный вызов любой функции или объекта из этих библиотек. Таким образом, есть код приложения, вызывающий их -> они не будут удалены.

...