C# 检查.net core中动态加载的库的依赖项

C# 检查.net core中动态加载的库的依赖项,c#,reflection,asp.net-core,dependencies,mimekit,C#,Reflection,Asp.net Core,Dependencies,Mimekit,我正在尝试创建使用外部dll-s中的一些函数的插件。 因为我不知道将使用哪个插件,所以我希望动态加载: 主asp.net核心项目,使用反射动态加载mailservice.dll等插件 mailservice.dll库,它公开了我使用MimeKit作为IMAP助手的CheckMail方法 一切都可以正常加载,但当我调用CheckMail方法时,我收到System.IO.FileNotFoundException:无法加载文件或程序集的MailKit,版本=1.16.0.0。 所以我把MimeKit

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

主asp.net核心项目,使用反射动态加载mailservice.dll等插件

mailservice.dll库,它公开了我使用MimeKit作为IMAP助手的CheckMail方法

一切都可以正常加载,但当我调用CheckMail方法时,我收到System.IO.FileNotFoundException:无法加载文件或程序集的MailKit,版本=1.16.0.0。 所以我把MimeKit的所有依赖项都从发布版本中提取出来,但仍然没有46个文件。 当我使用nuget将MimeKit包安装到我的主asp.net项目中时,一切运行正常,但显然我不想保持这种依赖性


是否有任何工具或技术来检查丢失的文件?

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

首先使用此命令设置环境变量

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

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

dotnet run 2> log.txt

注意:当dotnet主机写入STDERR流而不是STDOUT时,您需要“2>”重定向。您的常规日志记录将是STDOUT。希望这有帮助,谢谢。我收到相同的异常数据。没有路径信息或其他数据。在.net core中执行Owin项目时,如何处理IIS?