2008-12-09 31 views
4

使用Enterprise Library 3.1 May 2007版本時出現此錯誤。我們正在開發一個產品,並在Subversion Trunk目錄下有一個共同的lib目錄,其中我們放入了所有第三方dll。\ Trunk \ Lib \中的\ Trunk \ Lib \目錄下。在這裏面我們有Microsoft \ EnterpriseLibrary \ v3.1,其中我們複製了\ Program Files \ Microsoft Enterprise Library May2007 \ bin中的所有dll。一切正常,直到其中一位開發者在這臺機器上安裝了源代碼。在源代碼安裝結束時有一些dll被複制,一旦完成,他無法再運行該項目。他總是得到這個錯誤System.IO.FileLoadException

'Microsoft.Practices.EnterpriseLibrary.Data,Version = 3.1.0.0,Culture = neutral,PublicKeyToken = null'或它的一個依賴關係。定位的程序集清單定義與程序集引用不匹配。 (異常來自HRESULT:0x80131040)'

這裏有什麼問題?我認爲,當源代碼安裝時,它只是應該建立一切,並複製到源代碼父目錄中的bin目錄中。此外,我們已將Microsoft Enterprise Library May 2007 \ bin目錄中的Dll複製到我們的產品開發目錄中,並將copylocal標誌設置爲true以引用到我們的項目中。

誰能幫助我在這裏

RK

回答

7

我曾經在開發時針對簽名版本的dll開發並部署了只有未簽名版本可用的版本。

另外,fuslogvw.exe。 EVERY。時間。

0

也許你應該檢查DLL的總成 - 和文件版本。如果它們不匹配,則可能發生此異常。

0

閱讀here開始進行程序集加載調試。

總之,您需要檢查Fusion日誌以獲取更多信息。

對於一個「的位於集的清單 定義與名稱[yourAssembly] 不匹配組件參考」 消息(HRESULT FUSION_E_REF_DEF_MISMATCH, 0x80131040):融合日誌會說的 哪一部分裝配參考 未能匹配找到的內容。它 將是程序集名稱,文化, 公鑰(或令牌)或版本(如果 找到的程序集是 強命名)。

1

我認爲錯誤在於開發人員已經編譯了代碼與未簽名的源代碼編譯。

確保在編譯其代碼之前添加對已簽名DLL的​​引用。

Microsoft.Practices.EnterpriseLibrary.Data,Version = 3.1.0。0,文化=中立,公鑰=空

應該是這樣的:

Microsoft.Practices.EnterpriseLibrary.Data,版本= 3.1.0.0,文化=中立,公鑰= fa03fef243232

相關問題