在未安装 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
值为1
的LogFailures
键以打开日志。您应该在不测试时将此值设置回 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) LogFailures 将值设置为 1 (DWORD) LogResourceBinds 将值设置为 1 (DWORD) LogPath (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.exe
和flogvwrc.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程序