协慌网

登录 贡献 社区

如何在. NET 中启用程序集绑定失败日志记录(Fusion)

如何在. NET 中启用程序集绑定失败日志记录(Fusion)?

答案

添加以下值

HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Fusion
Add:
DWORD ForceLog set value to 1
DWORD LogFailures set value to 1
DWORD LogResourceBinds set value to 1
DWORD EnableLog set value to 1
String LogPath set value to folder for logs (e.g. C:\FusionLog\)

确保在文件夹名称后面包含反斜杠并且文件夹存在

您需要重新启动正在运行的程序以强制它读取这些注册表设置。

顺便说一句,不要忘记在不需要时关闭融合日志。

我通常使用 Fusion Log Viewer(来自 Visual Studio 命令提示符的Fuslogvw.exe或开始菜单中的 Fusion Log Viewer) - 我的标准设置是:

  • 以管理员身份打开 Fusion Log Viewer
  • 点击设置
  • 选中启用自定义日志路径复选框
  • 输入要写入日志的位置,例如c:\FusionLogs重要:确保您已在文件系统中实际创建了此文件夹。)
  • 确保正确级别的日志记录已打开(我有时只选择 “ 记录所有绑定到磁盘”以确保操作正常)
  • 单击确定
  • 将日志位置选项设置为自定义

一旦完成,请记得关闭注销!

(我刚刚在类似的问题上发布了这个问题 - 我认为这也是相关的。)

如果您的计算机上安装了 Windows SDK,您将在 Microsoft SDK \ Tools 下找到 “Fusion Log Viewer”(只需在 Vista 或 Windows 7/8 的开始菜单中键入 “Fusion”)。启动它,单击 “设置” 按钮,然后选择 “日志绑定失败” 或 “记录所有绑定”。

如果禁用这些按钮,请返回开始菜单,右键单击日志查看器,然后选择 “以管理员身份运行”。