title: How to find what depends on a specific version of a specific dependency?
body: <p>I'm getting this error when I run my app (not at compile time):</p>
  
  <blockquote>
    <p>Could not load file or assembly
    'Castle.Windsor, Version=2.1.0.0,
    Culture=neutral,
    PublicKeyToken=407dd0808d44fbdc' or
    one of its dependencies. The located
    assembly's manifest definition does
    not match the assembly reference.
    (Exception from HRESULT: 0x80131040)</p>
  </blockquote>
  
  <p>My solution has many projects, using project references where possible, but some of those projects have assembly references to external dependencies.</p>
  
  <p>How can I easily find out which project is looking for this specific version of <code>Castle.Windsor.dll</code>?  I don't have that version and am trying to use 2.5.2 (latest), so I want to find the culprit and update it to use the latest one.</p>
  
  <p>Many thanks in advance.</p>
  
  <p><strong>UPDATE</strong><br>
  I've added a sanitised Fusion log below. It appears to be telling me that <code>Caliburn.Castle</code> requires <code>Castle.Windsor, Version=2.1.0.0</code> (which would be a mistake as I'm using 2.5), but Fusion assembly probing as actually finding <code>Castle.Windsor, Version=2.5.1.0</code> instead.</p>
  
  <p>Have I understood that correctly?</p>
  
  <pre><code>=== Pre-bind state information ===
  LOG: User = Barney\neil
  LOG: DisplayName = Castle.Windsor, Version=2.1.0.0, Culture=neutral, PublicKeyToken=407dd0808d44fbdc
   (Fully-specified)
  LOG: Appbase = file:///[Debug folder of my exe]
  LOG: Initial PrivatePath = NULL
  LOG: Dynamic Base = NULL
  LOG: Cache Base = NULL
  LOG: AppName = [Filename of my exe]
  Calling assembly : Caliburn.Castle, Version=1.1.0.0, Culture=neutral, PublicKeyToken=8e5891231f2ed21f.
  ===
  LOG: This bind starts in default load context.
  LOG: Using application configuration file: [Config file for my exe]
  LOG: Using host configuration file: 
  LOG: Using machine configuration file from C:\Windows\Microsoft.NET\Framework\v4.0.30319\config\machine.config.
  LOG: Post-policy reference: Castle.Windsor, Version=2.1.0.0, Culture=neutral, PublicKeyToken=407dd0808d44fbdc
  LOG: GAC Lookup was unsuccessful.
  LOG: Attempting download of new URL file:///[Debug folder of my exe]/Castle.Windsor.DLL.
  LOG: Assembly download was successful. Attempting setup of file: [Debug folder of my exe]\Castle.Windsor.dll
  LOG: Entering run-from-source setup phase.
  LOG: Assembly Name is: Castle.Windsor, Version=2.5.1.0, Culture=neutral, PublicKeyToken=407dd0808d44fbdc
  WRN: Comparing the assembly name resulted in the mismatch: Minor Version
  ERR: The assembly reference did not match the assembly definition found.
  ERR: Failed to complete setup of assembly (hr = 0x80131040). Probing terminated.
  </code></pre>