Приложение VB 2005 не может запустить подпроцесс pscp - PullRequest
0 голосов
/ 07 июля 2011

У меня есть приложение VB2005, написанное предыдущим кодером.Мне пришлось перенести его на новую коробку Windows 7, так как на xp-коробке, на которой он был размещен, произошел катастрофический сбой жесткого диска.Он работал нормально на коробке xp, но не работает на коробке Windows 7.

Точнее говоря, я проследил его до определенного подраздела.Для запуска pscp, инструмента командной строки putty scp, используется библиотека Process.У него есть таймер ожидания 400 секунд для закрытия процесса, в противном случае он останавливает процесс и сообщает об ошибке.

К сожалению, в Windows 7 он даже не запускает процесс, потому что недождитесь указанных 400 секунд и не сообщит о другой ошибке, которая выдастся, если pscp запустится, но не получится.Есть ли проблема совместимости с библиотекой процессов или какая-то проблема конфигурации?

Обновление:

Хорошо, после дополнительного тестирования я определил, что подпроцесспорождается, но родитель не ожидает его выхода.

кажется, что код VB myProcess.WaitForExit(40000) фактически не ждет, пока процесс не завершится.Это потому, что он не может «увидеть» процесс и считает, что имеет выход?

1 Ответ

0 голосов
/ 08 июля 2011

Ладно, кажется, что это достойный момент для лица.Один из других разработчиков внес изменения в эту вещь, и я взял указанную им версию из папки bin / debug.К сожалению, его установка не создала и версию выпуска, и версию отладки одновременно.И, как идиот, я не удосужился проверить отметку времени на нем и не понял, что отладочная версия не была обновлена.

Версия в папке bin / debug была несколько месяцевстарый и на самом деле не работает.Таким образом, все изменения, которые мы сделали, пытаясь это исправить, не использовались.Здесь я усвоил несколько ценных уроков:

  1. Убедитесь, что вы захватываете самый последний исполняемый файл
  2. Даже если предыдущий разработчик не настраивал репо, попробуйте
  3. Всегда клонируйте рабочую настройку, чтобы избежать этого во-первых
...