0

我正在尝试创建使用外部 dll-s 中的某些功能的插件。因为我不知道将使用哪个插件,所以我想动态加载:

  1. 主要的 asp.net 核心项目,它使用反射动态加载诸如 mailservice.dll 之类的插件。

  2. 公开 CheckMail() 方法的 mailservice.dll 库(我使用 MimeKit 作为 IMAP 助手)。

一切正常,但是当我调用 CheckMail() 方法时,我收到System.IO.FileNotFoundException: Could not load file or assembly 'MailKit, Version=1.16.0.0。所以我把从发布版本中提取的 MimeKit 的所有依赖项都放在了,但仍然没有(46 个文件)。当我使用 nuget 将 MimeKit 包安装到我的主 asp.net 项目时,一切运行正常,但显然我不想保持这种依赖关系。

是否有任何工具或技术来检查缺少哪个文件?

4

1 回答 1

3

要从 dotnet 核心主机获取程序集探测路径,您可以启用核心主机跟踪。
如果您从 Visual Studio 运行,请转到命令提示符和您的 asp.net 核心主解决方案的位置

先用这个命令设置环境变量

set COREHOST_TRACE=1

之后只需使用dotnet run 运行,您将获得完整的详细信息

要将输出重定向到文本文件,请使用 redrection

dotnet run 2> log.txt

注意:您需要“2>”重定向,因为 dotnet 主机写入 STDERR 流而不是 STDOUT。您的常规日志记录将是 STDOUT。希望这会有所帮助

于 2017-05-05T02:42:48.313 回答