Проект командной строки C # - Ошибка при запуске через .exe - PullRequest
1 голос
/ 22 июля 2010

У меня есть проект на C #, который компилируется нормально. Когда я запускаю проект через IDE Visual Studio, он работает нормально и заканчивается чисто. Однако, когда я перехожу в каталог проекта и пытаюсь запустить программу, дважды щелкнув файл «exe» или ссылаясь на него через окно запуска, происходит ошибка.

Я сузил проблему до

Console.WriteLine("output ->" + any_variable);

По какой-то причине, если я напечатаю любую переменную с помощью console.writeline, приложение выдаст ошибку, если будет работать, как описано ранее.

Если я уберу эту строку, исполняемый файл, созданный Visual Studio, будет работать нормально, если я дважды щелкну по нему. Я действительно смущен этим. Моя цель здесь - создать этот проект командной строки как запланированное задание.

Ответы [ 3 ]

4 голосов
/ 22 июля 2010

Я предполагаю, что ошибка не имеет ничего общего с WriteLine или даже Console. Хотя обычно разница между запуском из IDE и запуском из двойного щелчка может заключаться в правах (т. Е. Вы можете запустить IDE как администратор, или местоположение, в которое вы пишете / читаете из / в, отличается и имеет разные ACL-списки, присоединенные к это), похоже, это не так.

Чтобы отследить фактическую ошибку, скомпилируйте ее в режиме отладки. Запустите ваше приложение (возможно, с каким-нибудь окном сообщения). Запустите IDE и выберите «Отладка и присоединение к процессу» (у вас будет все время, если вы приостановите приложение с окном сообщения). Выберите ваш процесс. Запускайте, пока не получите ошибку. Теперь вы должны получить сообщение об ошибке в IDE, даже если приложение запускается с двойного нажатия на EXE. Вы можете увидеть стек и выполнить отладку, как обычно.

Мое предположение? Переменная, которую вы печатаете, вызывает ошибку.

В качестве альтернативы: простая попытка / отловка оскорбительного выражения плюс окно сообщения с Exception.Message также должны дать вам больше информации.

1 голос
/ 22 июля 2010

Извините, я ошибся ... поэтому РЕДАКТИРОВАТЬ

Поместите ваш код в конструкцию try {} catch {}:

try
{
//your code goes here
}
catch (Exception ex)
{
    Console.WriteLine("An error occured: {0}", ex.Message);
    if (ex.InnerException != null)
       Console.WriteLine("Inner Exception: {0}", ex.InnerException.Message);
    Console.WriteLine("Stack Trace: {0}", ex.StackTrace);
}

Thisнеобходимо выяснить, где ваша проблема, какая строка кода и т. д.

0 голосов
/ 22 июля 2010

Я не знаю, относится ли это к вашему делу или нет, но у меня была очень похожая проблема, которую я опубликовал здесь на днях: Странное сообщение об ошибке при запуске моего приложения

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...