LinqPad только что разбился у меня. Мой код где-нибудь на диске?

Я разбил 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
    }
}

person spender    schedule 12.10.2010    source источник


Ответы (1)


Перед крахом вы случайно не запускали его один раз? Если да, то он был бы скомпилирован и должен быть доступен в виде dll, которую можно открыть с помощью . NET-рефлектор.

Проверьте временную папку LINQPad, например: C:\Documents and Settings\username\Local Settings\Temp\LINQPad. Отсортируйте файлы по дате изменения, затем проверьте несколько DLL в Reflector, пока не найдете свой запрос. Вероятно, он не будет в точности похож на ваш запрос, но его должно быть достаточно, чтобы вы могли спасти свой код.

ОБНОВЛЕНИЕ: в LINQPad (бета-версия, на момент написания этой статьи) добавлена ​​функция автоматического восстановления. Насколько мне известно, он был доступен в бета-версии еще в версии 4.28.3. Получите бета-версию, чтобы воспользоваться ею, или она уже может быть в версии для будущих читателей этого поста. Если LINQPad запускается после сбоя, он вызывает диалоговое окно с вопросом, хотите ли вы восстановить несохраненные запросы.

person Ahmad Mageed    schedule 12.10.2010
comment
Отличные новости. Честно говоря, больше он у меня никогда не зависал. Джо любезно объяснил мне, что stackoverflow — это одна из ошибок, которую он не может предотвратить, чтобы отключить LinqPad, но что мое тяжелое положение вдохновило его на включение этой функции. LinqPad — редкость среди продуктов, где я не чувствую себя ужаленным, когда становлюсь платным пользователем. - person spender; 02.12.2010
comment
Установите Jetbrains dotPeek и найдите последнюю измененную сборку @ C:\Users\Name\AppData\Local\Temp\LINQPadX. - person paul-2011; 22.07.2021