.NET核心1.0是否支持System.Xml.XPath? VS 2015并不这么认为

时间:2016-08-24 14:43:26

标签: .net-core

我试图将.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

发生了什么?

迈克尔

2 个答案:

答案 0 :(得分:3)

这里有一些混乱。

  • 提供的链接是大致反映作为.NET Core(xplat)实现的一部分编程的类库的源代码列表。但是,这并不反映{1}合同或{1}}与1:1的关系。其中有与平台无关的库 (例如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)实现。除此之外,还有无数的平台不可知库(如netstandardSystem.Xml.XPath)。令人困惑的是,这些也算作“.NET标准库”的一部分。但是,元数据包System.Collections.Immutable在我看来只涵盖NETStandard.Library的缩小部分,而不是顶部的不可知库。

BCL Library

对于netstandard,这在某种程度上是有道理的。它是一种已弃用的 API,它不是“.NET平台标准”的元素(这是.NET实现的严格要求),但仍可作为“.NET标准库”的一部分使用“每个平台上的每个人都可以使用。

答案 1 :(得分:1)

您应该将依赖项添加到System.Xml.XPath