Построить решение проблемы - PullRequest
0 голосов
/ 30 августа 2011

Я использую Visual Studio 2010 с C #.

Когда я использую инструмент Start Debugging (F5) , кажется, все работает нормально.Итак, я создаю решение.

Теперь я закрываю Visual Studio 2010 и иду по пути, где хранится «приложение» для программы.Когда я дважды щелкаю файл, программа запускается нормально.Однако, когда я нажимаю кнопку «сохранить» в графическом интерфейсе, она сохраняет файлы, но перехватывается моим блоком try / catch.

Почему это происходит в приложении, когда я дважды щелкаю по нему, ноне когда я запускаю Visual Studio 2010 для отладки?

РЕДАКТИРОВАТЬ:

try
{
    StreamWriter sw2 = new StreamWriter(saveFile2.FileName);
    List<string> universalLineList = new List<string>();
    string file = saveFile2.FileName;
    string[] splitFile = file.Split('\\');
    string[] savedName = splitfile[6].Split('.');
    int i = 1;

    sw2.WriteLine(savedName[0]);
    sw2.WriteLine("Created on: " + DateTime.Now.ToShortDateString() + " at: " + DateTime.Now.ToString("HH:mm:ss"));
    sw2.WriteLine();

    while (i < stepAndRepeatcounter)
    {
        sw2.WriteLine("Line: {0}", i);
        i++;
    }

    sw.WriteLine();

    foreach(var line in theUniversalList)
    {
        if (line.Name.ToUpper().Contains("FID"))
        {
            sw2.WriteLine("Fiducial: {0}, X: {1}, Y: {2}",
                          line.Name,
                          line.XPlacement,
                          line.YPlacement);
        }
    }

    sw2.WriteLine("Placements: ");

    foreach (var line in theUniversalList)
    {
        if (!line.Name.ToUpper().Contains("FID"))
        {
            sw2.WriteLine("Name: {0}, X: {1}, Y: {2}",
                          line.Name,
                          line.XPlacement,
                          line.YPlacement);
        }
    }

    int j = 0;
    sw2.WriteLine("Slots: ");
    foreach (var line in theUniversalList)
    {
        if (!line.Name.ToUpper().Contains("FID"))
        {
            sw2.WriteLine("Slot: {0}, P/D: {1}, P/N: {2}",
                          j,
                          line.PartDescription,
                          line.PartNumber);

            sw2.WriteLine("Slot: 22, P/D: Reject, P/N: {0}",
                          line.PartNumber);

            j++;
        }
    }

    sw2.Close();
}

catch (Exception)
{
    MessageBox.Show("Could not format and save Universal-1 Placements", "Universal-1 Save Error", MessageBoxButtons.OK, MessageBoxIcon.Warning);
}

1 Ответ

1 голос
/ 30 августа 2011

Я думаю, что это следующие строки:

string file = saveFile2.FileName;
string[] splitFile = file.Split('\\');
string[] savedName = splitfile[6].Split('.');

Я полагаю, что ваш путь недостаточно длинный для 7-го элемента, когда вы запускаете файл из командной строки (возможно, путь будет чем-то вроде ". \ Xzy.txt"

Чтобы быть на 100% уверенным, проверьте и StackTrace исключения, чтобы получить строку с ошибкой.

...