2017-03-20 3 views
1

FAKEコードのファイル内でテキストを変更しようとしました。定義済みの関数RegexReplaceInFilesWithEncodingを使用しています。しかし、それはエラーを投げている....すなわちThe value is not a function and can not be applied。以下は私のコードです:RegexReplaceInFilesWithEncodingを使用してファイル内のChanginテキストがエラーを返しました - FAKE F#MAKE

注:version_noは動的ですが、当面は静的に使用しています。

#r "./packages/FAKE/tools/FakeLib.dll" 
open Fake 

let version_no = "0.65" 

Target "ChangeText" (fun _ -> 
    !! "D:/test/TestFile.txt" 
    |> RegexReplaceInFilesWithEncoding @"admintool: XYZ.XYZ.XYZ_0.[0-9][09]" 
             @"admintool: XYZ.XYZ.XYZ_"+version_no 
             System.Text.Encoding.UTF8) 

"ChangeText" 
RunTargetOrDefault "ChangeText" 

答えて

3

F#では、関数アプリケーションはすべての操作の中で最も高い優先度を持ちます。これには「プラス」演算子が含まれます。

これは、このようにそのコードを意味します

f x+5 

は、次のように解釈されます:

(f x) + 5 

fxへの適用は、それが最も高い優先度を持っているので、最初に来る、と+ 5一部が後になります。あなたの場合にこれを適用する

f (x+5) 

か、を::

Target "ChangeText" (fun _ -> 
    !! "D:/test/TestFile.txt" 
    |> RegexReplaceInFilesWithEncoding @"admintool: XYZ.XYZ.XYZ_0.[0-9][09]" 
             (@"admintool: XYZ.XYZ.XYZ_"+version_no) 
             System.Text.Encoding.UTF8) 
+0

は、それが働いた、ありがとう:)だけの操作を中心に括弧を追加し、この問題を解決するには

KMittal

関連する問題