2011-02-02 125 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的詳細程度,您可以將其追蹤到編譯失敗時的位置。

相關問題