我不明白这两者有什么区别。
我想要编译一个c#文件到一个dll使用假的CscHelper。这是我的构建文件:
// include Fake lib
#r @"packages/FAKE/tools/FakeLib.dll"
open Fake
open CscHelper
Target "Default" (fun _ ->
["Discover.cs"] |> csc (fun p -> { p with Output="Discover.dll"; Target=Library })
)
RunTargetOrDefault "Default"这是我得到的错误:
build.fsx(7,24): error FS0001: Type mismatch. Expecting a
string list -> unit
but given a
string list -> int
The type 'unit' does not match the type 'int'如果我将"csc“替换为"Csc”,它将正确编译。为什么?在文档中,除了单个字符之外,代码示例实际上是完全相同的。方法签名看起来与返回类型不同。为什么有两个变体,你如何使小写一工作?
发布于 2016-10-05 13:27:25
小写形式是适当的。您可以始终将结果输送到忽略函数,以确保返回一个unit ()。
// include Fake lib
#r @"packages/FAKE/tools/FakeLib.dll"
open Fake
open CscHelper
Target "Default" (fun _ ->
["Discover.cs"] |> csc (fun p -> { p with Output="Discover.dll"; Target=Library }) |> ignore
)
RunTargetOrDefault "Default"实际的工具提示告诉您正在发生什么(它返回退出状态代码,它是int类型的):
类型错配。期待一个“字符串列表->单元” 但是给定一个“string list -> int” 类型'unit‘不匹配类型' int’val csc : setParams:(CscParams -> CscParams) -> inputFiles:string list -> int全名: Fake.CscHelper.csc用指定的参数编译给定的C#源文件。 参数
setParams -用于覆盖默认CSC参数的函数。inputFiles - C#输入文件。返回
编译过程的退出状态代码。
示例
"file1.cs";"file2.cs“|> csc (有趣的参数-> {->=.目标=.}
你可能已经发现了或者没有发现,但是每个人都知道有选择是很好的。谢谢。日安。
https://stackoverflow.com/questions/34639610
复制相似问题