Проверьте зависимости динамически загружаемой библиотеки в ядре.net

Я пытаюсь создать плагин, который использует некоторые функции из внешних DLL-ов. Поскольку я не знаю, какой плагин будет использоваться, я хотел бы динамически загрузить:

  1. Основной основной проект asp.net, который динамически загружает плагины, такие как mailservice.dll, используя отражение.

  2. Библиотека mailservice.dll, которая предоставляет метод CheckMail() (я использую MimeKit в качестве помощника IMAP).

Все загружается нормально, но когда я вызываю метод CheckMail(), я получаю System.IO.FileNotFoundException: не удалось загрузить файл или сборку 'MailKit, Version = 1.16.0.0. Поэтому я поместил все зависимости для MimeKit, извлеченные из релизной версии, и до сих пор ничего (46 файлов). Когда я устанавливаю пакет MimeKit с помощью nuget в свой основной проект asp.net, все работает нормально, но, очевидно, я не хочу сохранять такую ​​зависимость.

Есть ли какой-либо инструмент или метод, чтобы проверить, какой файл отсутствует?

1 ответ

Чтобы получить путь проверки сборки от главного узла dotnet, вы можете включить трассировку основного узла.
Если вы работаете в Visual Studio, перейдите в командную строку и укажите местоположение основного решения asp.net.

сначала установите переменную среды с помощью этой команды

set COREHOST_TRACE=1

После этого просто запустите, используя dotnet, и вы получите полную информацию

Чтобы перенаправить вывод в текстовый файл, используйте перенаправление

dotnet run 2> log.txt

примечание: вам нужно перенаправление "2>", так как узел dotnet записывает в поток STDERR, а не STDOUT. Ваша обычная регистрация будет STDOUT. Надеюсь, это поможет

Другие вопросы по тегам