我正在將一個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