Как определить, какие приложения имеют данную сборку, зарегистрированную в GAC?
При попытке удалить данную сборку (в данном случае log4net.dll, но она должна применяться в любом аналогичном случае) с использованием gacutil.exe, действие завершается неудачно из-за сборки, требуемой приложением. Однако я не могу понять, как определить, какие приложения на самом деле требуют этого. Поскольку выходные данные, по-видимому, указывают на то, что требование зарегистрировано в базе данных MSI / установщике Windows, может показаться, что некоторые утилиты могли бы перечислить все сборки GAC, зарегистрированные в базе данных MSI (и я мог бы просто искать записи с помощью 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
Спасибо!
1 ответ
Я никогда не нашел ничего хорошего для этого. Что я сделал (это сработало, но плохо), так это запустил procmon, чтобы увидеть, к чему обращался gacutil, и заметил, что он нажал клавишу HKCR\Installer\Products\098D637EEF1AFF14586E779FE4C38C4D. Когда я посмотрел под этим ключом в regedit, он показал, что продукт был "Программное обеспечение Plantronics Spokes".
Я зашел в appwiz.cpl и удалил это приложение, а затем gacutil /l log4net показал, что log4net больше не находится в GAC.
Я все еще хотел бы найти лучший ответ, но я думаю, что пока что "запустить procmon, filter to process=gacutil.exe и путь в HKCR \ Installer \ Products" как минимум лучше, чем ничего.