2016-08-18 63 views
0

獲取相當常見的錯誤麻煩與圖書館的System.Xml

「‘的XmlReader’在未引用的程序集中定義的類型。你必須添加一個引用程序集「的System.Xml,版本= 4.0 .0.0,文化=中性公鑰= ...」

這裏是一個要

SecurityToken securityToken = tokenHandler.ReadToken(contextTokenString) 

錯誤引用是的,我已經看到了這個問題很多次也行(加藥系統.xml到程序集解決了ev的問題赤裸),線索是我DO有我的引用程序集中的System.Xml dll,我沒有導入System.Xml命名空間。

任何人都可以幫助我嗎?

PS:我爲我的英語很抱歉,可能會有一些錯誤:P

+0

什麼版本的網絡庫是您的項目設置?如果你是爲Net 2.0設置的,xml庫將不起作用。 – jdweng

+0

看起來像System.Xml實際上並沒有包含在內,因爲當我輸入「using System」時,Intellisence不會提示System.Xml。 – koee

+0

它在其他項目中工作正常 – koee

回答

0

看,如果該項目確實是在.NET 4.0中,也許它改變

該DLL可能是從其他.NET版本。我會嘗試刪除它,並再次參考它

+0

我也會檢查System.Xml.Serialization是否也存在。這裏有一個參考可以幫助: http://stackoverflow.com/questions/31835615/getting-a-compile-error-in-c-sharp-about-not-referencing-system-xml-yes-system –

+0

這種重複在這裏: http://stackoverflow.com/questions/34957617/xmlreader-is-declared-in-a-different-assembly-even-though-system-xml-is-referenc –

+0

該項目是在。 NET 4.5.2 – koee

0

看到錯誤消息,因爲它表示它期待Version=4.0.0.0。既然你說你已經引用和導入了命名空間,然後檢查引用的DLL的版本,它絕對是一個不同的版本。

+0

也檢查過它,它是4.0.0.0 – koee

3
  1. 刪除參考System.Xml
  2. 添加引用回到System.Xml
  3. 參考解決方案資源管理器節點上,System.Xml.dll單擊鼠標右鍵,然後單擊性能
  4. 見有什麼價值Copy Local。如果它是True,請將其更改爲False,清理並重新構建解決方案(甚至重新啓動VS)。如果它是False,請將其更改爲True,清理並重建(和/或重新啓動VS),然後再次更改爲False並進行清理和重建。它應該解決問題。