如何在 dotnet core web 项目(在 IIS Express 中运行)中跟踪失败的程序集绑定

Aar*_*k71 6 .net-assembly iis-express .net-core

我正在努力寻找为什么某个程序集未加载到 dotnetcore 3.1 web 项目中

(我越来越Could not load file or assembly 'MyCool.Services.Interfaces, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null'

如果这是一个 netFw 项目,我只需启动Fuslogvw并找到大量有关程序集绑定失败原因的信息。

也许我忽略了,但我还没有找到另一种方法来为 dotnet 核心项目查找此类信息。

之前的帖子在这里问过,但没有答案: What's the replacement for fuslogvw in .net core 2?

我也已经遵循了这篇SO帖子的建议:检查.net core中动态加载库的依赖关系并在包管理器控制台中设置COREHOST_TRACE=1 。

在此输入图像描述

但它似乎对于运行 IIS Express 的 Web 项目没有用。(日志状态dotnet :无法找到要运行的项目。当我启动项目时)

任何有关如何跟踪我失败的程序集绑定的建议将不胜感激!

Aar*_*k71 9

好吧,多一点坚持谷歌搜索帮助了我......

事实证明,微软已经为我们提供了一个新的“ dotnet-trace 分析实用程序”以及大量有关如何跟踪程序集加载的文档。

使用它的步骤是:

  1. 使用 dotnet 工具安装 dotnet-trace 实用程序

PM> dotnet 工具安装 --global dotnet-trace

  1. 在 iis express 中识别正在运行的应用程序的 pid

PM> dotnet-trace ps

  1. 开始追踪:)

PM> dotnet-trace 收集 --providers Microsoft-Windows-DotNETRuntime:4 --process-id <pid>

  1. 最后使用Github/microsoft/perfview中的perfview工具打开trace.nettrace文件

我希望这些信息可以帮助其他人不要浪费太多时间在谷歌上搜索“如何在 dotnetcore 中 fuslogvw”:)