我正在将一个简单的库(没有 deps)移植到 netstandard1.0
。对你们来说可能很容易,但我不明白为什么在我拥有的简单类库上以 netstandard1.0
为目标时会出现此构建错误。
CS1061 'string' does not contain a definition for 'Any' and no extension method 'Any' accepting a first argument of type 'string' could be found (are you missing a using directive or an assembly reference?) MyProject..NETStandard,Version=v1.0
所以,似乎是在提示 Any
方法;我认为是 Linq 库的扩展方法部分。 AFAIK,Linq 是 NETStandard.Libary 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
可以解决它,但是据我所知,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/