问题标签 [fusion-log-viewer]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
7 回答
56040 浏览

.net - 在未安装 Visual Studio 的机器上使用 FUSLOGVW.EXE

我目前在我们的开发服务器上遇到了一些程序集绑定问题。我想用 Fusion Log Viewer 进一步调查这个问题。由于机器上没有安装 Visual Studio,我将 FUSLOGVW.EXE 复制到本地文件夹并在那里启动它。

这应该有效还是需要其他东西?我没有得到应用程序正在记录任何失败的印象(是的,我的设置正确)。

0 投票
3 回答
1497 浏览

.net - FxCop:被分析的程序集引用的控制程序集未加载

FWIW:Windows 7 64 位,Compact Framework v3.5,FxCop v1.36(运行 fxcopcmd.exe)

我在让 FxCop 1.36 正常运行时遇到问题。我正在使用来自http://www.dotneti18n.com/Downloads.aspx的全球化规则分析一个紧凑的框架应用程序

我正在分析的 .exe 引用了第 3 方控制套件:resco.outlookcontrols.cf.dll。当 fxcop 运行并分析我的应用程序时,它会说找不到这个程序集。我已经检查、重新检查和检查了 30 多次,以确保运行应用程序所需的所有程序集都与正在分析的程序集位于同一文件夹中 - 包括 resco dll。

使用融合日志查看器,我可以获得以下信息:

这是让我非常沮丧的部分:fxcop 文档(此处为http://msdn.microsoft.com/en-us/library/bb429449%28VS.80%29.aspx)说它将加载所有引用的程序集分析的程序集所在的同一文件夹,或来自 /directory: 命令行选项引用的文件夹。

它没有兑现书面承诺。该文件确实存在于与正在分析的文件相同的文件夹中,我尝试将该文件夹作为 /directory: 命令行选项传递。我什至在 .fxcop 文件中设置了 AssemblyReferenceDirectories 元素。然而,根据融合日志,唯一被搜索的地方是探测的“通常”位置。

并且仅供参考 - 我尝试更新 fxcopcmd.exe.config 中的“探测”设置 - 将不起作用,因为正在分析的程序集的文件夹不在 fxcop 工具的根文件夹下,所以它给了我一个警告说不会被调查。

其他人有这个问题吗?有人有解决方案吗?

谢谢

0 投票
1 回答
2775 浏览

.net - 这个 Fusion 日志在说什么?

我正在调试程序集加载问题,所以我正在查看融合日志。有时他们让我感到困惑,因为他们从指示失败开始,然后最后他们说程序集从我期望加载的位置加载。

“操作失败”后跟“从...加载的 IL 程序集”的真正含义是什么?是加载程序集失败,还是成功了?

即使程序退出时,我也会看到这种程序集日志can't load file or assembly SomeAssembly or one of its dependencies。根据与上述类似的日志条目加载有问题的程序集。

这是否表明未找到程序集的本机依赖项?我是否需要更改日志设置以查看哪个本机依赖项失败,或者我还能做些什么?

0 投票
1 回答
2409 浏览

load - 可用于调试 .NET 程序集加载失败的工具

您可以使用哪些好工具来调试具有本机依赖项的 .NET 程序集加载失败。我使用过 fusion logger (FUSLOGVW.exe) 和 ProcMon,但它们对我帮助不大。还有其他有用的工具吗?

谢谢,穆罕默德

0 投票
0 回答
405 浏览

asp.net - Fusion Log Viewer 在 Windows 8.1 升级后无法工作

我注意到,在我升级到 Windows 8.1 后,Fusion Logger 不起作用,从某种意义上说,当我的 .NET 项目运行(ASP.NET 网站)时,单击“刷新”不会产生任何结果。在升级之前,它曾经在 Windows 8 上运行得非常好。

我试过了fuslogvw.exe

C:\Program Files (x86)\Microsoft SDKs\Windows\v8.0A\bin\NETFX 4.0 Tools

C:\Program Files (x86)\Microsoft SDKs\Windows\v8.0A\bin\NETFX 4.0 Tools\x64

C:\Program Files (x86)\Microsoft SDKs\Windows\v7.0A\Bin

C:\Program Files (x86)\Microsoft SDKs\Windows\v7.0A\Bin\x64

一切都无济于事。

人们在stackoverflow的其他问题上建议的解决方案没有奏效,尽管它们适用于早期版本的Windows。我试过以管理员身份运行。我还在 Fusion 注册表项中创建了值为 '1' 的 'Forcelog' 和 'LogResourceBinds 'Dwords',但都无济于事。

这真的让事情变得很困难,因为我在开发时将它广泛用于调试目的。有没有其他人遇到过这个问题,或者知道可能的解决方案?

注意:我可能会补充。我正在将我的项目从 MVC 3 升级到 4,并使用 Fusion Log Viewer 来整理不正确的程序集绑定。这可能与 MVC 4 有关吗?

谢谢

0 投票
1 回答
3079 浏览

.net - 参考程序集版本不匹配

我正在尝试为 Fusion Log Viewer 做一个演示,希望在自定义目录中查看程序集绑定日志。

我刚刚为此创建了一个小型演示应用程序,如下所示:

一个仅包含一个方法 GetString() 并将程序集版本设置为 1.0.0.0 的小型类库项目

引用上述库并具有以下代码的小型控制台应用程序项目:

参考 ClassLibrary1.dll 版本 1.0.0.0

我构建了这个控制台应用程序并关闭了 Visual Studio,然后运行可执行文件。它按预期打印“是”。

然后,我将 ClassLibrary1 的 AssemblyInfo 升级如下,将其版本号更改为 2.0.0.0:

用这个 2.0 版本替换控制台应用程序内的库并再次运行可执行文件后,它仍然可以工作并打印“是”。

为什么当引用的 DLL 中不存在时它仍然工作?期望应该是在 Fusion Log Viewer 的自定义目录中创建程序集绑定日志失败。

谁能解释一下,为什么它仍然有效?

0 投票
1 回答
245 浏览

c# - 如何找到导致 System.Reflection.Assembly.LoadFile 失败的确切原因?

这个LoadFile()功能真的让我很难过。我有两个程序集 ,Asm1.dll并且Asm2.dll正在 GAC 中安装。稍后,这些程序集被加载LoadFile()用于创建匹配的类型库。

这一切都适用于Asm1.dll(在 PowerShell 中测试):

但它不适合Asm2.dll

但是,这两个程序集确实存在于我的工作文件夹以及 GAC 中:

我还尝试LoadFile()了完整的 GAC 路径——两个程序集的结果相同。

从过去我知道,在重建我的工具之前,从我的组件的所有痕迹中清除 HKCU 注册表和 GAC 后,问题就消失了。但在我更新了 Visual Studio 并在没有先清理所有内容的情况下重建了我的工具之后,它确实在今天早上重新出现。

LoadFile()函数就像一个黑匣子,给我关于哪里出了问题的完全信息。形象地说,我不想再通过“当我只是在寻找熔断的保险丝时拆除我的整个建筑物”来解决这个问题。

那么我如何才能跟踪此失败的根本原因呢?

编辑

@Efie 谢谢。$error[0]唯一指向LoadFile()函数作为错误源。那里没有其他见解。

@Ian Kemp,@Jeroen Mostert 感谢您推荐融合日志查看器。

它确实提供了一些信息,但仍未指出实际原因。相反 - 日志表明程序集绑定成功,而错误消息仍然出现在 PowerShell 控制台中。

两个程序集的日志文件除了名称、版本和融合日志明确报告它在 GAC 中找到的事实之外是相同的,Asm1没有这样做:Asm2Asm1Asm2

如果我在两个调用中指定完整的 GAC 路径,则两个程序集的日志文件除了名称和版本之外是相同Asm1的;包括 - 行。Asm2LoadFile()Post-policy