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

标签 c# cakebuild

我试图在我的蛋糕脚本中使用 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,则在使用“未找到程序集”执行脚本时安装插件时会出现错误。

这是我得到的完整输出:

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 应该是默认导入的命名空间。

关于c# - 在 Cake 脚本中找不到 Linq 扩展方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43279169/

相关文章:

c# - 如何在 Compact Framework 下的套接字上实现非无限接收和发送超时?

continuous-integration - TeamCity + 蛋糕 : Displaying VSTest output in project summary

.net-core - TeamCity 在测试 .NET Core 项目时不获取 xUnit 测试的结果

msbuild - Cake - 是否可以将我的步骤单独输出到 TeamCity 的统计数据中?

c# - 尝试在 InstalledLocation StorageFolder 中创建文件异步时访问被拒绝?

c# - 调用 PowerStatus.BatteryChargeStatus.ToString() 有时会返回 0

c# - c#动态调用方法

javascript - UWP WebView Javascript "Object doesn' t 支持属性或方法”

c# - MyGet 和 Cake,生成版本号

c# - 当我尝试使用 Cake 构建我的项目时出现错误