问题是我的类型之一,
Expression<'P>
无法加载
TypeLoadException
. 不幸的是,Visual Studio无法显示任何其他信息,包括
InnerException
.
实际上,我根本无法检查异常对象。当地人不显示
$exception
在手表窗口手动输入也找不到。堆栈窗口也是空的。
我尝试过Fusion日志,但该程序集甚至没有显示在那里,例如,在加载此类型(和程序集)之前,日志似乎立即停止。
我还尝试创建一个C项目,并调试它,而不是直接调试F项目,但得到了相同的问题。
我使用的是F 4.5 Preview via vs 2017 15.8.0 Preview 5,但问题可能并不具体(代码使用的是4.5内容)。
我最近做了一个巨大的改变使用自定义指针通过
byref
这还包括将项目迁移到目标.NET标准2.0。仍然有一个依赖于.NET之前的标准F nuget包。
所有相关项目中都安装了fsharp.core-4.5.2,但依赖项除外。
另外,如果F工具团队的某个人看到了这一点,代码就在
https://github.com/Church-of-the-Singularity/GeneticProgramming
标签
repro/TypeLoadException-Expression
更新
这似乎是一个编译器错误。我将失败的例子缩小到以下代码:
[<Struct>] type Ptr<'P, 'T when 'T: struct>(ptr: 'P) = member this.Address = ptr;;
[<Struct>] type MyExpr<'P> = Zero | Reference of reference:Ptr<'P, MyExpr<'P>>;;
如果你只是把它粘贴到F Interactive中,你会看到我的异常。在4.1和4.5中复制。报道
to GitHub
.