我正在将一个F#应用程序部署到heroku作为脚本,并且我遇到了非常奇怪的问题。我发现了在例以下错误如下所示,但不是其他:为什么数组中的记录会在heroku中导致类型初始值设定项错误?
System.TypeLoadException:无法加载类型“FSI_0007 +试验[]”从 组件“FSI总成,版本= 0.0 .0.0,Culture = neutral, PublicKeyToken = null'。 (包装托管到本机) System.Reflection.MonoMethod:InternalInvoke (System.Reflection.MonoMethod,object,object [],System.Exception &)at System.Reflection.MonoMethod.Invoke(System.Object obj ,的BindingFlags invokeAttr,System.Reflection.Binder粘合剂,System.Object的[] 参数,System.Globalization.CultureInfo培养)< 0x410a5830 + 0x000b7>在:0
错误情况下:
type Test = { Test: string }
printfn "%A" [|{Test = "test"}|] <--- error here
工作情况:
printfn "%A" [|"test"|]
type Test = { Test: string }
printfn "%A" {Test = "test"}
printfn "%A" [{Test = "test"}]
这样看来,我不能把记录数组,但我可以把任何内置的数组类型。另外,我可以将记录放入列表中。并自己记录是好的。
为什么记录和数组的组合会导致错误?
我在这里使用buildpack: https://github.com/SuaveIO/mono-script-buildpack
它采用单4.4.2.11。
它在视觉工作室没有发生与本地fsi。
看起来像一个错误。它只是记录文字,也就是说,你可以让一个记录绑定一个记录并使用它来绑定数组元素? – scrwtp
另外,如果你在数组开始的操作符'[|'和开始记录操作符'{'?可能是某些内容将[[| {'三个字符解析为单个标记而不是两个标记。如果是这样,那么写'[| {...} |]'应该解决解析错误。 – rmunn
@rmunn错误只发生在heroku。 – mydogisbox