2017-09-15 2 views
1

Install Shield 스크립트에서 DOS 명령 호출을 작성했습니다. C : \ Windows \ System32 \ PnPutil.exe -a "C : \ Program Files (x86) \ Anite \ Drivers \ SPS \ ftdiport.inf "InstallShield에서 DOS 명령을 실행하면 오류가 발생합니다.

Windows 64 비트 PC에서 InstallShield 프로그램을 실행할 때 (Setup.exe 파일을 두 번 클릭)이 명령은 항상 반환 코드 2를 제공합니다 (시스템이 지정된 파일을 찾을 수 없습니다. 지정한 위치에서 파일을 찾을 수 없습니다.) 그러나 동일한 PC에서 CMD 창 (관리자로)을 열고 setup.exe 파일과 동일한 위치에서 정확히 동일한 DOS 명령을 실행하면 항상 작동합니다. InstallShield 스크립트가 실행될 때 Higvated Mode에서 InstallShield에서이 명령을 실행하면 관리자 모드에서 CMD에서 실행하는 것과 동일해야합니다. 그러나 첫 번째 경우에는 실패하지만 두 번째 경우에는 성공합니다.

또한 Windows 32 비트 PC에서 동일한 InstallShield 프로그램을 실행하면 명령이 항상 작동합니다. C : \ Windows \ System32 \ PnPutil.exe -a "C : \ Program Files \ Anite \ Drivers \ SPS \ ftdiport.inf "

Win64 비트 OS에서이 DOS 명령을 InstallShield 스크립트에서 실행하면 Program Files (x86) 영역에서 파일을 찾을 수 없다는 점에서 문제가있는 것으로 보입니다. 또한이 문제는 pnputil 유틸리티를 호출 할 때만 발생합니다. 다른 모든 유틸리티 (예 : regsvr32.exe)는 아무런 문제없이 호출됩니다.

주어진 조언이나 도움을 주시면 감사하겠습니다. 미리 감사드립니다.

+0

32 비트 또는 64 비트 명령 프롬프트를 열고 있습니까? 코드는 무엇입니까? InstallScript는 항상 32 비트 코드로 실행되므로 32 비트 명령 프롬프트가 가장 적합합니다. –

답변

1

이 issue.What를 해결하는 방법 32 비트 Install Shield 프로그램으로 이미지를 빌드하면 C : \ Windows \ SysWOW64 디렉토리에 모든 64 비트 응용 프로그램과 시스템 호출을 자동으로 리디렉션하는 설정 (WOW64FSREDIRECTION)이 있습니다.이 경우이 경우 pnputil 명령 호출이 해당 디렉토리에 있지 않기 때문에 실패하게됩니다 (따라서 오류 코드 "Th e 시스템은 지정된 파일을 찾을 수 없습니다. ")하지만 system32 디렉토리에 있습니다. 나는이 속성을 덮어 쓰는 installshield 루틴 "Disable (WOW64FSREDIRECTION)"을 사용했는데,이 문제가 해결되었습니다. 명령은 system32 디렉토리에서 성공적으로 실행되었습니다.

관련 문제