下面的示例代码是自然产生的。突然,我的代码解冻了一个听起来非常讨厌的 FatalExecutionEngineError
异常。我花了整整30分钟试图分离并最小化罪魁祸首的样本。使用 VisualStudio2012作为控制台应用程序编译此文件:
class A<T>
{
static A() { }
public A() { string.Format("{0}", string.Empty); }
}
class B
{
static void Main() { new A<object>(); }
}
应该在.NET 框架4和4.5上产生这个错误:
这是一个已知的错误,什么是原因,我可以做什么来减轻它?我目前的工作是不使用 string.Empty
,但是我是否找错了树?改变这段代码的任何内容都可以让它正常工作——例如,删除 A
的空静态构造函数,或者将类型参数从 object
改为 int
。
我在我的笔记本电脑上试了这个代码,它没有抱怨。然而,我确实尝试了我的主应用程序,它在笔记本电脑上也崩溃了。我一定是在减少问题的时候弄坏了什么东西,我看看能不能弄明白那是什么。
我的笔记本电脑在框架4.0的时候崩溃了,代码和上面一样,但是 main 在框架4.5的时候崩溃了。两个系统都在使用 VS’12的最新更新(7月?).
更多信息 :