2011-02-02 92 views
13

当我(在编译时)运行我的应用程序我得到这个错误:如何查找依赖于特定版本的特定依赖项的内容?

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

我的解决方案有很多项目,使用项目引用在可能的情况,但一些项目有外部依赖集的引用。

如何轻松找出哪个项目正在寻找这个特定版本的Castle.Windsor.dll?我没有该版本,并试图使用2.5.2(最新),所以我想找到罪魁祸首,并更新它使用最新的。

非常感谢提前。

UPDATE
我在下面添加了一个已消毒的Fusion日志。它似乎告诉我,Caliburn.Castle需要Castle.Windsor, Version=2.1.0.0(这将是一个错误,因为我使用2.5),但融合装配探测实际上发现Castle.Windsor, Version=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. 
+0

您是对的,Castle.Windsor的更新版本正在发现,但Caliburn.Castle想要一个较旧的版本。 – Pedro 2011-02-02 18:44:54

回答

1

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

这应该提供所有需要的信息。

请参阅MSDN

1

FusionLog tool是这样的事情的最佳工具,但有时只会指向你的代码。尝试调整MSBuild的详细程度,您可以将其追踪到编译失败时的位置。

相关问题