我试图将.Net 4.x中的库移植到.Net核心1.0,并且我在VS 2015中遇到的一个错误(很多)是" XPath&#34 ;不是System.Xml命名空间的一部分。 (即:此using语句失败:使用System.Xml.XPath)
然而,当我查看NetStandard.Library 1.6的规范时,看起来它仍然是规范的一部分:
https://github.com/dotnet/corefx/tree/master/src
发生了什么?
迈克尔
答案 0 :(得分:3)
这里有一些混乱。
netstandard
),它们不是“.NET平台标准”的一部分,另一方面是仅对.NET Core有用的库(其中一些:https://www.nuget.org/packages/Microsoft.NETCore.App/)。NETStandard.Library
命名空间在System.Buffers
+ System.Xml.XPath
之上System.Xml.Xpath
库/ NuGet中实现。因此,它可作为平台无关组件使用。netstandard1.3
涵盖了一组API,这些API需要由.NET平台(如.NET Core,.NET Framework,Mono,Xamarin,以及希望将来的Unity3D)实现。除此之外,还有无数的平台不可知库(如netstandard
或System.Xml.XPath
)。令人困惑的是,这些也算作“.NET标准库”的一部分。但是,元数据包System.Collections.Immutable
在我看来只涵盖NETStandard.Library
的缩小部分,而不是顶部的不可知库。对于netstandard
,这在某种程度上是有道理的。它是一种已弃用的 API,它不是“.NET平台标准”的元素(这是.NET实现的严格要求),但仍可作为“.NET标准库”的一部分使用“每个平台上的每个人都可以使用。
答案 1 :(得分:1)
您应该将依赖项添加到System.Xml.XPath。