2011-05-13 30 views
3

在Blend 4中設計時,我得到了一個例外代碼。在Blend 4中的設計時訪問程序集

我已經將問題縮小到加載特定庫。其他庫可以很好地加載,只是這一個失敗。因此,對於此代碼:

var a = Assembly.Load("lib1"); 
var b = Assembly.Load("lib2"); 

第二行將引發異常:無法加載文件或程序集「lib2」或其依賴項之一。該系統找不到指定的文件。

如果相同的代碼在Blend之外運行,它不會拋出。這兩個程序集似乎在項目中以相同方式引用,並且都標記爲「複製本地」。

有關如何解決此問題的任何建議?

回答

2

在設計時,Blend會將您的程序集複製到除輸出文件夾以外的臨時文件夾,因此事情的行爲可能與正常運行程序時不同。 Blend在設計時也需要「Any CPU」配置,所以如果你運行「x86」,通常你可以得到不同的結果。

但是Blend本身就是一個像任何其他軟件一樣的託管程序,並且可以詳細診斷問題,您可以打開Fusion Log Viewer來查看程序集綁定錯誤以試圖找出錯誤。據推測,圖書館本身應該是它應該在的地方(在Blend的臨時文件夾中),但是它的一個間接依賴關係沒有找到。通過使用具有足夠細節的日誌查看器,您應該能夠看到導致問題的特定綁定失敗。

這裏是一個鏈接:

+1

融合日誌顯示,它正試圖從C加載程序集:\ Program Files文件\微軟Expression \混合4.如果我的地方彙編到該目錄中,它加載正常。很奇怪。 – oillio 2011-05-13 22:30:31

+0

我刪除了裝配,重建,然後重新添加它。現在它工作正常。所以這是一個小時的浪費。感謝您的建議。 – oillio 2011-05-13 22:39:27

相關問題