title: How to tell which application(s) have a given assembly registered in the GAC?
body: <p>When trying to remove a given assembly (log4net.dll in this case, but it should apply to any similar case) using gacutil.exe, the action fails due to the assembly being required by an application.  However, I can't figure out how to tell which application(s) actually require it.  Since the output seems to indicate that the requirement is logged in the MSI database / Windows Installer, it would seem like some util would be able to either list all the GAC assemblies registered in the MSI database (and I could just search for entries with log4net.dll) or allow me to specify a particular GAC'd assembly and it would list the dependencies (ideally with any related dependency chains if they exist :)</p>
  
  <pre><code>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: &lt;WINDOWS_INSTALLER&gt;  ID: &lt;MSI&gt;  DESCRIPTION : &lt;Windows Installer&gt;
  Number of assemblies uninstalled = 0
  Number of failures = 0
  </code></pre>
  
  <p>Thanks!</p>