6

我在制作一些不那么微不足道的东西时使 LinqPad 崩溃了。在确定不会危及恢复我的工作(如果可能的话)之前,我不想重新启动它。我的问题是:LinqPad 是否编写任何可能仍包含我编写的代码的临时文件?

为了后代,这是一个每次都使 LinqPad 崩溃的测试用例(也发布到LinqPad 论坛):

void Main()
{
    Crasher.Crash();
}
class Crasher
{
    public static void Crash()
    {
        var a=0;
        Crash();
        a++; //let's get something in the tail so compiler 
             //doesn't optimise tail recursion and prevent
             //stackoverflow
    }
}
4

1 回答 1

8

在崩溃之前,您是否碰巧运行过一次?如果是这样,它就会被编译并且应该作为一个 dll 提供,您可以使用.NET Reflector打开它。

检查 LINQPad 临时文件夹,例如:C:\Documents and Settings\username\Local Settings\Temp\LINQPad. 按修改日期对文件进行排序,然后检查 Reflector 中的一些 dll,直到找到您的查询。它可能不会完全类似于您的查询,但它应该足以让您挽救您的代码。

更新:自动恢复功能已添加到 LINQPad(测试版,在撰写本文时)。据我所知,它早在 v4.28.3的Beta 版本中就已提供。获取测试版以利用它,或者它可能已经在发布版本中供本文的未来读者使用。如果 LINQPad 在崩溃后启动,它会弹出一个对话框,询问您是否要恢复未保存的查询。

于 2010-10-12T14:22:21.547 回答