在 Cake 脚本中找不到 Linq 扩展方法

Cannot find Linq Extension Method in Cake script

我试图在我的蛋糕脚本中使用 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,我将在使用 "Assembly Not Found".

执行脚本时安装插件时出现错误

这是我得到的完整输出:

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?)

如果我 运行 没有 --experimental,我会得到相同的结果。

根据 Cake 存储库中的问题,这应该按预期工作:https://github.com/cake-build/cake/issues/1331

调用 LINQ 扩展方法 .OrderByDescending() https://msdn.microsoft.com/en-us/library/bb548916(v=vs.110).aspx

另外 #r 用于引用程序集。对于使用,只需使用 using 关键字。但是 System.Linq 应该是默认导入的命名空间。