Проблемы с NativeProcess

Я выдергиваю волосы.

У меня есть проект Flash Professional CS6 с использованием ActionScript 3.0 и Adobe AIR 2.7.

У меня есть очень важный класс, который использует NativeProcess для связи с исполняемым файлом командной строки. Он отлично работает, когда я отлаживаю программу во Flash Professional, но как только я упаковываю ее для Adobe AIR (Extended Desktop profile), установленная программа ни на что не реагирует, потому что молча зацикливается на этом коде. Он не падает, он просто останавливает выполнение кода.

file = File.applicationDirectory.resolvePath("deepcore/" + module + ".exe");
startup.executable = file;
process.addEventListener(ProgressEvent.STANDARD_OUTPUT_DATA, addToBuffer);
process.start(startup);

Когда я комментирую startup.executable = file и process.start(startup), все работает нормально.

Я проверил и дважды проверил, что развернутая версия поддерживает NativeProcess (NativeProcess.isSupported возвращает true.)

Все мои импорты работают правильно.

Почему мой код меня ненавидит?


person CodeMouse92    schedule 07.06.2013    source источник


Ответы (1)


Ха, хорошо, я чувствую себя немного глупо сейчас.

Мой путь, как вы могли заметить, находится внутри каталога приложения. При отладке во Flash присутствует путь «deepcore/*.exe» (где * — имя модуля).

Однако после установки это больше не работает, потому что путь не существует в каталоге установленного приложения, а нерабочие файловые каталоги не предусмотрены.

В настройках публикации я добавил папку deepcore, и все заработало нормально. (И да, я изменил свой код, чтобы проверить наличие файла.)

person CodeMouse92    schedule 07.06.2013