2009-01-16 71 views
0

我有一個引用程序集「Microsoft.Xna.Framework,Version = 2.0.0.0,Culture = neutral,PublicKeyToken = 6d5c3888ef60e27d」的應用程序。我已經創建了一個安裝程序項目,可以在GAC中安裝此程序集(通過運行XNA redist安裝程序)。.net運行時試圖使用程序集的錯誤版本

但是,當第一次使用此程序集時,JITing期間收到異常。然後我試圖NGEN的圖像,以及NGEN提供了以下錯誤信息:

Failed to load dependency Microsoft.Xna.Framework of assembly x, 
Version=1.0.0.0, Culture=neutral, PublicKeyToken=null because of the following 
error : The specified module could not be found. (Exception from HRESULT: 0x8007007E) 

注意,版本是1.0.0.0和公鑰缺失,和假裝配不存在。什麼會導致JITer和ngen試圖加載這個壞版本的程序集?

程序集的正確版本位於GAC中。我已經在Reflector中打開了我的圖像,並且參考在那裏正確顯示。我還驗證了依賴關係層次結構中沒有其他程序集加載僞造的1.0.0.0版本。事實上,1.0.0.0版本並不存在於任何地方,無論是在開發盒還是測試機器上。

但是,當試圖擴展對測試機器上Microsoft.Xna.Framework的引用時,Reflector認爲(正確)引用的程序集版本是2.0.0.0,但即使我可以看到它也找不到它在GAC中查看資源管理器中的c:\ windows \ assembly時。

請幫忙。

+0

複製本地參考可能嗎? – Pondidum 2009-01-16 10:33:00

+0

引用的程序集旨在位於GAC中,我可以在c:\ windows \ assembly中看到它。 – erikkallen 2009-01-16 10:36:45

回答

0

(注意 - 預編輯日期再外接1.0 DLL)的

你使用任何外部DLL?也許是一些引用1.0版本的第三方xna dll。如果第一次被發現,所有投注都可能關閉。嘗試查看反射器中的任何外部dll,請參閱它們引用的版本。您也可以嘗試爲xna dll添加version policy

相關問題