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

Posted

技术标签:

【中文标题】在未安装 Visual Studio 的机器上使用 FUSLOGVW.EXE【英文标题】:using FUSLOGVW.EXE on a machine with no Visual Studio installed 【发布时间】:2010-11-03 23:28:13 【问题描述】:

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

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

【问题讨论】:

【参考方案1】:

Fuslogvw 不进行日志记录。 fusion loader 就是这样做的。 Fuslogvw 只显示日志输出。您是否在配置的输出目录中获得任何日志?

哦,它应该可以在没有安装 Visual Studio 的机器上运行。

【讨论】:

不,当我选择登录到磁盘时,我没有得到任何输出。 设置明确的自定义日志路径并在设置对话框中选择“记录所有绑定到磁盘”。日志应该在那里结束。如果它们没有出现,请检查您指定为日志路径的目录的权限(并且它确实存在)。 FUSLOGVW.EXE 复制到安装了.NET 4.0 的机器没有 Visual Studio不起作用。您还需要复制“Program Files (x86)\Microsoft SDKs\Windows\v7.0A\Bin\NETFX 4.0 Tools\”下1033文件夹中的flogvwrc.dll @BrianChavez 似乎这仅适用于该工具的 .NET 4.0 版本。 .NET 3.5 版本的 fuslogvw.exe 无需此 .dll 即可运行。 1.在安装了 .NET 4.0 的机器上的任意位置创建一个新文件夹 2. 将 FUSLOGVW.EXE 和 flogvwrc.dll 复制到该文件夹​​。 3. 启动 Fuslogvw.exe。 4. 转到设置并启用所有绑定到磁盘 5. 关闭并重新打开 6. 设置明确的自定义路径。 7. 如果检查了 asp.net 应用程序,则重新启动 IIS【参考方案2】:

您可能使用了错误版本的 fuslogvw。检查 c:\program files\microsoft SDKs 或 c:\program files\Microsoft.net\SDK 以获取不同版本的实用程序。

【讨论】:

我正在使用 Visual Studio 2005 中的那个来检查 3.5 程序集中的问题。我认为这是正确的?你对版本还有什么意思?【参考方案3】:

您还需要在HKLM\SOFTWARE\Microsoft\Fusion 中创建DWORD 值为1LogFailures 键以打开日志。您应该在不测试时将此值设置回 0,否则它将继续填充日志。创建一个文件夹,例如。 C:\fuslog 并在程序集绑定日志查看器的设置中的自定义日志路径中引用它。

【讨论】:

关键不是“ForceLog”,而是“LogFailures”。 您可以添加另一个名为“LogPath” (REG_SZ) 的自定义路径(例如 c:\fuslog) @JorgeFioranelli 实际上是both【参考方案4】:

您必须将 HKLM\SOFTWARE\Microsoft\Fusion 设置为 0,因为它会使您的系统 Visual Studio 和其他东西变得如此缓慢,只是因为在打开数百个文件句柄时日志记录需要时间。我已经看到了我从未要求过日志的程序的条目和日志文件!

这里我给你一个例子,说明随着时间的推移会发生什么;我不知道 fusion / fuslogvw 会记录所有类型的事件。工具启动时应该明确这一点,它会继续记录并使您的系统变慢,主要是在 VS 启动非常大的项目时。我很感谢有关如何关闭它的信息。当我需要它时,我会再次使用它,因为它是一个很好的工具。但在这方面,这只是愚蠢的。约瑟夫

E:\Users\C770817\fuslogvw>tree
Folder PATH listing for volume LaCie
Volume serial number is B098-2591
E:.
├───Default
│   ├───4fe3a146
│   ├───6bf3b89
│   ├───758f6436
│   ├───92c7e946
│   ├───addinutil.exe
│   ├───aspnet_regiis.exe
│   ├───b210afcc
│   ├───CreateSchedulerFolder.exe
│   ├───dbb8b39f
│   ├───devenv.exe
│   ├───Duplicati.CommandLine.exe
│   ├───DuplicatiBgMgr.exe
│   ├───e04f35ff
│   ├───EA.exe
│   ├───edd6a3ed
│   ├───ElementsHelper.exe
│   ├───Eval32.exe
│   ├───EXCEL.EXE
│   ├───FxCopCmd.exe
│   ├───FX_b05566ac-fe9c-4368-be02-7a4cbb7cbe11
│   ├───FX_b05566ad-fe9c-4363-be05-7a4cbb7cb510
│   ├───FX_b05566ae-fe9c-4363-be05-7a4cbb7cb510
│   ├───FX_c7b8fb06-bfe1-4c2e-9217-7a69a95bbac4
│   ├───FX_c7b8fb07-bfe1-4c2e-9217-7a69a95bbac4
│   ├───FX_d1764f60-2007-4ad4-a1e8-e7714ed4eb5d
│   ├───GfxUIEx.exe
│   ├───InetMgr.exe
│   ├───InstallUtil.exe
│   ├───IntelliTrace.exe
│   ├───ISSDeployer.exe
│   ├───ISSLauncherTray.exe
│   ├───ISSShortcutManager.exe
│   ├───JabraCiscoJabberDriver.exe
│   ├───JabraDeviceService.exe
│   ├───LocalAccountMgmt.exe
│   ├───MFPPrinterTool.exe
│   ├───Microsoft.VisualStudio.Web.Host.exe
│   ├───mmc.exe
│   ├───MSBuild.exe
│   ├───mscorsvw.exe
│   ├───msdeploy.exe
│   ├───MsDepSvc.exe
│   ├───msvsmon.exe
│   ├───OxygeneRegClean2.exe
│   ├───OxygeneSchemaCatalog.exe
│   ├───pcee4.exe
│   ├───powershell.exe
│   ├───powershellcustomhost.exe
│   ├───RegisterEvent.exe
│   ├───RemObjects.Everwood.LicenseManager.exe
│   ├───sdiagnhost.exe
│   ├───SmsClrHost.exe
│   ├───SMSvcHost.exe
│   ├───Spezpla.exe
│   ├───Spezpla.vshost.exe
│   ├───sqlservr.exe
│   ├───SvcConfigEditor.exe
│   ├───Toolbox2Test.exe
│   ├───TrayCtrlNotify.exe
│   ├───UITServ.exe
│   ├───UserGUI.exe
│   ├───UserInstallTool.exe
│   ├───VideoHost.exe
│   ├───VS2012.4.exe
│   ├───VSIXInstaller.exe
│   ├───vssphost4.exe
│   ├───w3wp.exe
│   ├───WCFSpezplaServiceClient.exe
│   ├───WCFSpezplaServiceClient.vshost.exe
│   ├───WcfSvcHost.exe
│   ├───WebBrowserServer.exe
│   ├───WebDev.WebServer40.exe
│   ├───WebPlatformInstaller.exe
│   ├───WINPROJ.EXE
│   └───wsmprovhost.exe
└───NativeImage
    ├───4fe3a146
    ├───6bf3b89
    ├───758f6436
    ├───92c7e946
    ├───addinutil.exe
    ├───aspnet_regiis.exe
    ├───b210afcc
    ├───CreateSchedulerFolder.exe
    ├───dbb8b39f
    ├───devenv.exe
    ├───Duplicati.CommandLine.exe
    ├───DuplicatiBgMgr.exe
    ├───e04f35ff
    ├───EA.exe
    ├───edd6a3ed
    ├───ElementsHelper.exe
    ├───Eval32.exe
    ├───EXCEL.EXE
    ├───FxCopCmd.exe
    ├───FX_b05566ac-fe9c-4368-be02-7a4cbb7cbe11
    ├───FX_b05566ad-fe9c-4363-be05-7a4cbb7cb510
    ├───FX_b05566ae-fe9c-4363-be05-7a4cbb7cb510
    ├───FX_c7b8fb06-bfe1-4c2e-9217-7a69a95bbac4
    ├───FX_c7b8fb07-bfe1-4c2e-9217-7a69a95bbac4
    ├───FX_d1764f60-2007-4ad4-a1e8-e7714ed4eb5d
    ├───GfxUIEx.exe
    ├───InetMgr.exe
    ├───InstallUtil.exe
    ├───IntelliTrace.exe
    ├───ISSDeployer.exe
    ├───ISSLauncherTray.exe
    ├───ISSShortcutManager.exe
    ├───JabraCiscoJabberDriver.exe
    ├───JabraDeviceService.exe
    ├───LocalAccountMgmt.exe
    ├───MFPPrinterTool.exe
    ├───Microsoft.VisualStudio.Web.Host.exe
    ├───mmc.exe
    ├───MSBuild.exe
    ├───mscorsvw.exe
    ├───msdeploy.exe
    ├───MsDepSvc.exe
    ├───msvsmon.exe
    ├───OxygeneRegClean2.exe
    ├───OxygeneSchemaCatalog.exe
    ├───pcee4.exe
    ├───powershell.exe
    ├───powershellcustomhost.exe
    ├───RegisterEvent.exe
    ├───RemObjects.Everwood.LicenseManager.exe
    ├───sdiagnhost.exe
    ├───SmsClrHost.exe
    ├───SMSvcHost.exe
    ├───Spezpla.exe
    ├───Spezpla.vshost.exe
    ├───SpezplaPlanTest.exe
    ├───sqlservr.exe
    ├───SvcConfigEditor.exe
    ├───Toolbox2Test.exe
    ├───TrayCtrlNotify.exe
    ├───UITServ.exe
    ├───UserGUI.exe
    ├───UserInstallTool.exe
    ├───VideoHost.exe
    ├───VS2012.4.exe
    ├───VSIXInstaller.exe
    ├───vssphost4.exe
    ├───w3wp.exe
    ├───WCFSpezplaServiceClient.exe
    ├───WCFSpezplaServiceClient.vshost.exe
    ├───WcfSvcHost.exe
    ├───WebBrowserServer.exe
    ├───WebDev.WebServer40.exe
    ├───WebPlatformInstaller.exe
    ├───WINPROJ.EXE
    └───wsmprovhost.exe

E:\Users\C770817\fuslogvw>
E:\Users\C770817\fuslogvw>tree > x.txt

E:\Users\C770817\fuslogvw>

【讨论】:

仅供参考 - 可通过 FUSLOGVW.exe UI 进入“设置”并选择“禁用日志”(无需注册)【参考方案5】:

上述操作对我不起作用..

我建议改为:

在:HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Fusion

添加:

ForceLog 设置值为 1 (DWORD) Lo​​gFailures 将值设置为 1 (DWORD) Lo​​gResourceBinds 将值设置为 1 (DWORD) Lo​​gPath (String) 将值设置为日志文件夹,即 C:\FusionLog\

非常简单......这对我有用!我使用的是 Windows 2012 R2。

发现于:http://pauliom.com/2012/01/30/how-to-log-net-binding-errors-when-you-dont-have-fuslogvw-exe/

谢谢

【讨论】:

我需要重新启动机器,但这有效。赢服务器 2012 r2 确认也在服务器 2008 上工作(重启后)我离开 ForceLog = 0,否则它也会记录成功的绑定,从而更难找到实际失败的绑定 在 Win10 中无需重启即可工作。 在 Windows Server 2016 上为我工作。无论是否需要,我都重新启动了。 除了将 EXE 和 DLL 复制到一个新文件夹之外,我还必须按照@xav 的描述进行操作。另见:techcommunity.microsoft.com/t5/iis-support-blog/…【参考方案6】:

如上面的答案和 cmets 中所述,您需要做两件事才能让融合记录器在没有 Visual Studio 的机器上运行:

    fuslogvw.exe 复制到该计算机。您可以在安装 .NET 的任何位置找到它(例如 C:\Program Files (x86)\Microsoft SDKs\Windows\v8.1A\bin\NETFX 4.5.1 Tools\x64\FUSLOGVW.exe) 将flogvwrc.dll 复制到该计算机上与fuslogvw.exe 相同的位置。您可以在fuslogvw.exe 所在的1033 子目录中找到它(例如C:\Program Files (x86)\Microsoft SDKs\Windows\v8.1A\bin\NETFX 4.5.1 Tools\x64\1033\flogvwrc.dll

fuslogvw.exeflogvwrc.dll 放在一个目录中后,您就可以运行日志查看器了。您不需要更改注册表或进行任何其他更改。

【讨论】:

这里提到的 flogvwrc.dll 非常重要,尤其是在确定将哪些文件带到目标机器上时。谢谢! 很高兴它也帮助了你@JRobson。我将这两个文件保存在一个共享文件夹中,这样我就可以轻松地将它们复制到任何机器上。 问题:如果我将这些复制到用户机器上会不会侵犯版权? @Krumia 我不确定您所说的侵犯版权是什么意思。任何下载和安装 .NET 的人都可以免费使用这些文件。 这是正确的答案。【参考方案7】:

我编写了一个名为 Fusion++ and put it on GitHub 的程序集绑定日志查看器。它会写入您需要在计算机上激活日志记录的注册表项,然后解析日志,这样您就不必进行文件搜索了。

您可以从here 或通过 Chocolatey (choco install fusionplusplus) 获取最新版本。

我希望你和这里的一些访客可以用它来节省一些有价值的终生时间。

【讨论】:

以上是关于在未安装 Visual Studio 的机器上使用 FUSLOGVW.EXE的主要内容,如果未能解决你的问题,请参考以下文章

如何在未安装Visual Studio的计算机上安装Windows服务?

在不安装 Visual Studio 的情况下在机器上调试代码

是否需要在Xamarin构建机器Mac上安装Visual Studio?

为啥我不能在没有安装Visual Studio的机器上运行调试版的.NET程序

如何创建 Visual Studio 2017 RC 离线安装包

在没有 Visual Studio 的 Rider 中使用 NuGet