2016-08-18 69 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并进行清理和重建。它应该解决问题。