如何判断哪些应用程序在GAC中注册了给定的程序集



当尝试使用gaacutil .exe删除给定的程序集(在本例中为log4net.dll,但它应该适用于任何类似的情况)时,由于应用程序需要该程序集,该操作失败。但是,我不知道如何判断哪些应用程序实际上需要它。由于输出似乎表明,要求记录在MSI数据库/Windows安装程序中,似乎一些util将能够列出在MSI数据库中注册的所有GAC程序集(我可以用log4net.dll搜索条目)或允许我指定特定的GAC程序集,它将列出依赖关系(理想情况下,如果存在任何相关的依赖关系链:)

C: » gacutil /u log4net
Microsoft (R) .NET Global Assembly Cache Utility.  Version 4.0.30319.1
Copyright (c) Microsoft Corporation.  All rights reserved.

Assembly: log4net, Version=1.2.10.0, Culture=neutral, PublicKeyToken=1b44e1d426115821, processorArchitecture=MSIL
Unable to uninstall: assembly is required by one or more applications
Pending references:
              SCHEME: <WINDOWS_INSTALLER>  ID: <MSI>  DESCRIPTION : <Windows Installer>
Number of assemblies uninstalled = 0
Number of failures = 0

谢谢!

我从来没有找到任何好的东西。我所做的(工作,但糟糕)是运行procmon,看看gacutil正在访问什么,并注意到它击中了关键HKCRInstallerProducts98D637EEF1AFF14586E779FE4C38C4D。当我在regedit中查看那个键时,它显示产品是"Plantronics Spokes Software"。

我进入了appwiz。然后gacutil/l log4net显示log4net不再在GAC中了。

我仍然很想找到一个更好的答案,但我想现在"运行procmon, filter to process=gacutil.exe和path下的HKCRInstallerProducts"至少比什么都没有好。

相关内容

  • 没有找到相关文章

最新更新