2013-03-18 46 views
6

我有一個構建活動,它反映了我們的一個庫,將它與域定義進行比較。在反射,每當我試圖反映烏里返回作爲RunTimePropertyInfo,而不是開放的,每當我檢查所有的反射特性我得到一個異常說明的...反映System.dll的較早版本

"Could not load file or assembly 'System, Version=2.0.5.0, culture=neutral, publickeytoken=7cec85d7bea7798e, retargetable=yes" 

構建活動與System.dll中編譯版本4.0.0.0。我懷疑這是問題。有沒有一種方法可以讓我在舊版本的System.dll上反映出一種類型。

到目前爲止,這隻與Uri有關。有任何想法嗎?

+0

我試着將我的構建操作重新命名爲相同的system.dll,但沒有任何影響。 值得注意的是,我所反映的庫的System.dll版本來自.net 4便攜式庫。 – Robert 2013-03-18 14:54:44

+1

你正在混合框架目標,那從來沒有效果好。 2.0.5.0是Silverlight版本號。 – 2013-03-18 15:27:42

回答

0

我認爲存在版本控制問題,如果您使用的是在項目中使用的不同版本的dll,則可能發生此類錯誤。

這是一個簡單的解決方案,爲我過去工作,它會爲你工作,如果有同樣的問題。 你可以使用「bindingRedirect」標籤在web.config中定義有問題的DLL的新舊版本。所以這意味着它會忽略舊版本的dll引用,並使用新的一個,如果找到並不會產生錯誤。

這裏是引用鏈接。 http://msdn.microsoft.com/en-us/library/eftw1fys%28v=vs.71%29.aspx

+0

謝謝,我試過了你的建議,但沒有幫助。我想我需要做的是在反思不新的時候拿起舊的dll。 – Robert 2013-03-19 10:44:28

+0

你可以在這裏複製你的代碼你寫在web.config中的東西嗎?如果問題僅與版本相關,它必須工作 – 2013-03-19 10:47:35

+0

它可能不僅與版本相關聯。這隻發生在一個數據類型'Uri'上。我只是將一個項目放入我的日誌中,並在發生時跳過它。它將滿足我們的需求。還是要謝謝你的幫助。 – Robert 2013-03-19 11:42:07

相關問題