BAT-файл в Visual Studio 2017 - PullRequest
       0

BAT-файл в Visual Studio 2017

0 голосов
/ 15 ноября 2018

Я пытаюсь запустить файл .bat в моем приложении. Этот .bat вызывает приложение JTAG для загрузки микропрограммы в микроконтроллер. Тем не менее, я не знаю, почему это не в состоянии выполнить программное обеспечение. Если я запускаю .bat за пределами Visual Studio, он работает отлично.

У меня есть графический интерфейс и кнопка, которую я нажму, чтобы выполнить загрузку прошивки

Для генерации командных файлов я использовал программное обеспечение Uniflash. Это программное обеспечение создает папку со всеми необходимыми файлами для выполнения доступа JTAG и загрузки прошивки.

Мой код указан ниже:

    private void Button_Relay_Click(object sender, EventArgs e)
    {
        Process MSP = new Process();
        MSP.StartInfo.WorkingDirectory = @"D:\\Projects\\Test_Fixture\\Test_Fixture_Visual_Studio\uniflash_windows_64";
        MSP.StartInfo.FileName = "dslite.bat ";
        MSP.Start();
        Thread.Sleep(500);
        MSP.WaitForExit();

    }

Однако, когда я выполнил этот код, компиляция прошла нормально, но при запуске этого кода появилась эта ошибка: введите описание изображения здесь

Вопросы:

  1. Я всегда буду генерировать конкретные bat-файлы для каждого приложения и включать папку .bat в папку VS C #, как мне настроить путь к каталогу для автоматической проверки в папке моего программного обеспечения?

  2. Почему VS не может найти файлы, если путь правильный? введите описание изображения здесь

  3. После запуска .bat я хотел бы прочитать статус программирования (Успешно или неудачно). Как мне это сделать? успех введите описание изображения здесь

Сбой: введите описание изображения здесь

1 Ответ

0 голосов
/ 15 ноября 2018

Объявление 2)

Об ошибке:

Это потому, что вы, возможно, указали неверный путь:

Вместо

MSP.StartInfo.WorkingDirectory = @"D:\\Projects\\Test_Fixture\\Test_Fixture_Visual_Studio\uniflash_windows_64";

либо используйте \\ везде (есть только один \ между Test_Fixture_Visual_Studio и uniflash_windows_64) и пропустите @ ИЛИ используйте @ и просто используйте один \ вместо двух. Поэтому замените свою строку на эту:

MSP.StartInfo.WorkingDirectory = @"D:\Projects\Test_Fixture\Test_Fixture_Visual_Studio\uniflash_windows_64";



Объявление 3)

О результате вашего prcess:

На мой взгляд, проще не вызывать командный файл, а напрямую вызывать сам процесс. Таким образом, вы можете получить свойство Process.ExitCode для получения кода завершения исполняемого файла (если он возвращает свое состояние через код выхода). Вы можете проверить это, вызвав исполняемый файл в командной оболочке и проверив уровень ошибок последнего выполнения, вызвав

echo %ERRORLEVEL%

Обычно 0 указывает на успех, все остальное указывает на какой-то сбой.

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