使用RegexReplaceInFilesWithEncoding在文件中更改文本时会出现错误-FAKE F#MAKE

使用RegexReplaceInFilesWithEncoding在文件中更改文本时会出现错误-FAKE F#MAKE,f#,f#-fake,F#,F# Fake,我试图使用预定义函数regexreplaceinfireswithencoding以伪代码更改文件中的文本。但这是一个错误。。。。i、 e.该值不是函数,无法应用。下面是我的代码: 注意:version_no是动态的,但目前我将其用作静态的 #r "./packages/FAKE/tools/FakeLib.dll" open Fake let version_no = "0.65" Target "ChangeText" (fun _ -> !! "D:/test/TestF

我试图使用预定义函数
regexreplaceinfireswithencoding
以伪代码更改文件中的文本。但这是一个错误。。。。i、 e.
该值不是函数,无法应用
。下面是我的代码:

注意: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#中,函数应用程序在所有操作中具有最高的优先级。这包括“加号”操作符

这意味着像这样的代码:

f x+5
(f x) + 5
将被解释为:

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)