2017-04-07 30 views
1

ケーキスクリプトでLinq拡張メソッドを使用しようとしていますが、拡張メソッドを見つけることができません。 - そのよう.dllを追加したり、引用符でそれを包むように、私はSystem.Linkを参照するさまざまな方法の多くを試してみましたケーキスクリプトでLinq拡張メソッドが見つかりません

#r System.Linq 

Task("Default").Does(() => 
{ 
    var test = new List<string>() {"a", "b", "c"}; 
    test.OrderByDesc(x => x); 
}); 

RunTarget(target); 

は、ここに私のスクリプトです。それらのすべてがうまくいくようです。 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?) 

私は同じ結果を得る:

は、ここで私が得る完全な出力です。

予想通りケーキリポジトリ内の問題によると、これは動作する必要が:アセンブリを参照するために使用される#Rまたhttps://github.com/cake-build/cake/issues/1331

答えて

3

LINQ拡張メソッドはOrderByDescending(呼ばれる)https://msdn.microsoft.com/en-us/library/bb548916(v=vs.110).aspx

。使用するには、単にキーワードを使用してください。しかし、Sysyem.Linqはデフォルトでインポートされる名前空間でなければなりません。

+0

ありがとうございます!私はこれを比較するためにVisual StudioでC#コードをコンパイルしていて、それをずっと忘れていました。 – Max

関連する問題