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

クラッシュする前に、たまたまそれを一度実行しましたか?もしそうなら、それはコンパイルされており、 .NETReflectorで開くことができるdllとして利用できるはずです。

LINQPadtempフォルダーを確認します。例:C:\Documents and Settings\username\Local Settings\Temp\LINQPad。変更日でファイルを並べ替えてから、クエリが見つかるまでReflectorでいくつかのdllを確認します。おそらくクエリと正確には似ていませんが、コードを回収するには十分なはずです。

更新:自動回復機能がLINQPadに追加されました(ベータ版、この記事の執筆時点)。私の知る限り、ベータ版では早くもv4.28.3で利用可能になっています。ベータ版を入手して利用してください。ベータ版は、この投稿の将来の読者のためにすでにリリースバージョンに含まれている可能性があります。クラッシュ後にLINQPadを起動すると、保存されていないクエリを回復するかどうかを尋ねるダイアログが表示されます。

于 2010-10-12T14:22:21.547 に答える