使用 Regex Replace InFilesWith Encoding 更改文件中的文本会出现错误 - FAKE F#MAKE
Changin text in a file using RegexReplaceInFilesWithEncoding gives an error - FAKE F#MAKE
我正在尝试使用预定义函数 RegexReplaceInFilesWithEncoding
以 FAKE 代码更改文件中的文本。但它抛出一个错误....即The value is not a function and can not be applied
。下面是我的代码:
注意: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"
在 F# 中,函数应用程序在所有操作中具有最高的优先级。这包括 "plus" 运算符。
这意味着像这样的代码:
f x+5
会这样解读:
(f x) + 5
f
到x
的应用排在最前面,因为它的优先级最高,+ 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)
我正在尝试使用预定义函数 RegexReplaceInFilesWithEncoding
以 FAKE 代码更改文件中的文本。但它抛出一个错误....即The value is not a function and can not be applied
。下面是我的代码:
注意: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"
在 F# 中,函数应用程序在所有操作中具有最高的优先级。这包括 "plus" 运算符。
这意味着像这样的代码:
f x+5
会这样解读:
(f x) + 5
f
到x
的应用排在最前面,因为它的优先级最高,+ 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)