我正在尝试创建使用外部dll-s中的一些函数的插件。 因为我不知道将使用哪个插件,我想动态加载:
主要的asp.net核心项目,使用反射动态加载mailservice.dll等插件。
mailservice.dll库,它暴露了CheckMail()方法(我使用MimeKit作为IMAP助手)。
一切都很好,但是当我调用CheckMail()方法时,我收到 System.IO.FileNotFoundException:无法加载文件或程序集'MailKit,Version = 1.16.0.0 。 所以我把MimeKit的所有依赖项从发布版本中提取出来,但仍然没有(46个文件)。 当我使用nuget将MimeKit软件包安装到我的主asp.net项目时,一切运行正常,但显然我不想保持这种依赖。
是否有任何工具或技术可以检查哪个文件丢失?
答案 0 :(得分:0)
要从dotnet核心主机获取程序集探测路径,可以启用核心主机跟踪 如果从Visual Studio运行,请转到命令提示符和asp.net核心主解决方案的位置
首先使用此命令设置环境变量
set COREHOST_TRACE=1
之后使用 dotnet run 运行,您将获得完整的详细信息
要将输出重定向到文本文件,请使用redrection
dotnet run 2> log.txt
注意:你需要'2>'重定向为dotnet主机写入STDERR流而不是STDOUT。您的常规日志记录将是STDOUT。希望这有帮助