在Cake脚本中找不到Linq扩展方法
问题描述:
我想在我的Cake脚本中使用Linq扩展方法,但无法找到扩展方法。在Cake脚本中找不到Linq扩展方法
这里是我的脚本:
#r System.Linq
Task("Default").Does(() =>
{
var test = new List<string>() {"a", "b", "c"};
test.OrderByDesc(x => x);
});
RunTarget(target);
我已经尝试了很多的参考System.Link
不同的方式 - 如添加.dll
或者其包装上的报价。他们都似乎工作。如果我将其设置为不正确的引用,例如System.Link
,那么在执行带有“未找到程序集”的脚本时,安装加载项时会出现错误。
以下是完整的输出我得到:如果我运行这个没有--experimental
PS C:\git\CakeEFTest\CakeTest> ./build.ps1 --experimental
Preparing to run build script...
Running build script...
Analyzing build script...
Processing build script...
Compiling build script...
Error: C:/git/CakeEFTest/CakeTest/build.cake(6,7): error CS1061:
'List<string>' does not contain a definition for 'OrderByDesc'
and no extension method 'OrderByDesc' accepting a first argument
of type 'List<string>' could be found (are you missing a using
directive or an assembly reference?)
我得到相同的结果。
根据蛋糕库中的问题,这应该按预期工作:https://github.com/cake-build/cake/issues/1331
答
的LINQ扩展方法被称为OrderByDescending()https://msdn.microsoft.com/en-us/library/bb548916(v=vs.110).aspx
而且r组成,用于引用组件。对于使用,只需使用关键字。但是Sysyem.Linq应该是默认导入的命名空间。
谢谢!我甚至在Visual Studio中编译了C#代码,以便将其与整个时间进行比较并错过。 – Max