我有一个F#FAKE构建文件,我想用参数conf
调用它可以有两个值,cs和sk。我的批处理文件看起来像这样
@echo off
cls
"tools\nuget\nuget.exe" "install" "FAKE" "-OutputDirectory" "tools" "-ExcludeVersion"
"tools\FAKE\tools\Fake.exe" build.fsx conf=sk
pause
在F#文件中,我使用environVar "conf"
获取参数,这样就行了。
现在我想在F#文件中创建一个与conf
参数匹配的辅助方法,并返回一个字符串(在我的情况下是构建配置值),所以我有
let getConfiguration conf =
if (conf=="cs") then "Release"
else "Release(SK)"
我收到一条奇怪的消息
build.fsx(29,71): error FS0001: The type 'string' does not support the operator '=='
这就是我使用方法的方法
Target "Build" (fun _ ->
!! @"**/*.csproj"
|> MSBuild buildDir "Build" ["Configuration",(getConfiguration (environVar "conf"))]
|> Log "AppBuild-Output: "
)
答案 0 :(得分:3)
F#相等运算符为=
。
我不知道FAKE或您的方法是否有效,但编译错误的原因是,正如错误消息所述,没有==
运算符。有效版本:
if conf = "cs" then "Release" else "Release(SK)"