我正在将一个简单的库(无deps)移植到netstandard1.0。对你们来说可能很容易,但是我看不到为什么在我拥有的简单类库上定位netstandard1.0时出现此构建错误。


CS1061'string'不包含'Any'的定义,并且找不到扩展方法'Any'接受类型为'string'的第一个参数(您是否缺少using指令或程序集引用?)MyProject..NETStandard,版本= v1.0


因此,似乎在抱怨Any方法。我认为是Linq库的扩展方法部分。 AFAIK,Linq是NETStandard.Libary meta程序包1.0的一部分。

有问题的代码:

var numberString= "1234";
var isAllDigits = numberString.Any(t => !char.IsDigit((t))


我的project.json

{
  "dependencies": {
       "NETStandard.Library": "1.6.0"
  },

  "frameworks": {
    "netstandard1.0": { }
  }
}


将我的project.json更改为netstandard.1.2可以解决该问题,但是afaik Linq的东西存在于1.0中,应该可以编译..?

另外,可移植性工具运行得很好,并说我的目标范围也可以低至netstandard1.0

所以:

创建面向netstandard1.0的库时,如何得知不支持System.Linq v.4.3.0?

最佳答案

由于.net core的一个想法是保持库尽可能小,因此linq和许多扩展方法都在额外的程序包中。

尝试安装Install-Package System.Linq

我想指出的另一件事是非常有用的工具Reverse Package Search,它使您可以搜索类并找到相应的.net核心程序包。对于移植到.net核心非常有帮助。

关于.net - netstandard1.0/netstandard1.2和LINQ,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/40717089/

10-17 00:03