C# 如何找到依赖于特定依赖项的特定版本的内容?

C# 如何找到依赖于特定依赖项的特定版本的内容?,c#,.net,visual-studio,dll,dependencies,C#,.net,Visual Studio,Dll,Dependencies,我在运行我的应用程序时(不是在编译时)遇到此错误: 无法加载文件或程序集 'Castle.Windsor,版本=2.1.0.0, 文化=中立, PublicKeyToken=407dd0808d44fbdc'或 它的一个依赖项。位于 程序集的清单定义不正确 与程序集引用不匹配。 (来自HRESULT的异常:0x8013100) 我的解决方案有许多项目,在可能的情况下使用项目引用,但其中一些项目具有对外部依赖项的程序集引用 如何轻松找到哪个项目正在寻找此特定版本的Castle.Windsor.dl

我在运行我的应用程序时(不是在编译时)遇到此错误:

无法加载文件或程序集 'Castle.Windsor,版本=2.1.0.0, 文化=中立, PublicKeyToken=407dd0808d44fbdc'或 它的一个依赖项。位于 程序集的清单定义不正确 与程序集引用不匹配。 (来自HRESULT的异常:0x8013100)

我的解决方案有许多项目,在可能的情况下使用项目引用,但其中一些项目具有对外部依赖项的程序集引用

如何轻松找到哪个项目正在寻找此特定版本的
Castle.Windsor.dll
?我没有那个版本,正在尝试使用2.5.2(最新版本),所以我想找到罪魁祸首并将其更新为使用最新版本

非常感谢

更新
我在下面添加了一个消毒融合日志。它似乎在告诉我,
Caliburn.Castle
需要
Castle.Windsor,版本=2.1.0.0
(这将是一个错误,因为我使用的是2.5),但Fusion assembly探测实际上是在查找
Castle.Windsor,版本=2.5.1.0

我理解对了吗

=== 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.

您可以使用,它将为您提供有关调用程序集的更多信息。Scott Hansleman也一样。

您看过程序集绑定日志查看器(Fuslogvw.exe)了吗

这应提供所需的所有信息


请参见。

是处理此类问题的最佳工具,但有时只会指向您的代码。尝试打开MSBuild的详细信息,当编译失败时,您可能能够跟踪到编译的位置。

没错,正在找到Castle.Windsor的更新版本,但是Caliburn.Castle需要一个旧版本。@Pedro是的,后来我用Reflector查看了Caliburn.Castle.dll,并发现它需要2.1的Castle.Windsor.dll(尽管我从源代码重建)。我将再次尝试使用更新的Castle构建Caliburn.Castle.dll,然后重试。:)