Проверьте зависимости динамически загружаемой библиотеки в ядре.net
Я пытаюсь создать плагин, который использует некоторые функции из внешних DLL-ов. Поскольку я не знаю, какой плагин будет использоваться, я хотел бы динамически загрузить:
Основной основной проект asp.net, который динамически загружает плагины, такие как mailservice.dll, используя отражение.
Библиотека 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. Надеюсь, это поможет