В настоящее время я пишу пакетный скрипт, который запускает процессы в операционной системе. Этот пакетный скрипт вызывается из тестового приложения, которое создано и работает как 32-разрядное приложение как в 32-разрядных, так и в 64-разрядных операционных системах. Пакетный скрипт написан следующим образом:
set EXE=%1
if exist %WINDIR%\sysnative\%1 ( set EXE=%WINDIR%\sysnative\%1 )
start "" "%EXE%"
Я использую переменную sysnative для запуска 64-битных приложений в 64-битных операционных системах и 32-битных приложений в 32-битных операционных системах. Я использую этот скрипт на операционных системах Vista и выше. Он работает правильно во всех операционных системах, кроме Windows Vista x64 RTM. При вызове я получаю «Приложение не удалось запустить, поскольку его параллельная конфигурация неверна. Пожалуйста, смотрите журнал событий приложения для более подробной информации. "
Я открыл 32-разрядную командную строку в Windows Vista x64 RTM и перешел к C:\Windows\sysnative и попытался оттуда вызвать notepad.exe, calc.exe и т.д. И всегда получал одну и ту же ошибку. Я также пытался удалить и переустановить распространяемые пакеты Microsoft Visual c++ 2008, но безрезультатно. Журналы событий приложений / безопасности / системы не содержат никаких информационных / предупреждений / сообщений об ошибках, относящихся к этому. Эта проблема встречается только в Windows Vista x64 RTM. Какие-нибудь мысли?