2017-10-24 7 views
0

ISCmdBld.exe를 사용하여 원격 컴퓨터에 설치 프로그램을 설치하고 INSTALLDIR에 다른 경로를 지정해야합니다. 나는 다음과 같이 할 필요가있다 : -z INSTALLDIR = "[ProgramFiles64Folder] \ MyNewDir"그리고 32 비트 -z INSTALLDIR = "[ProgramFilesFolder] \ MyNewDir". 현재 이걸 시도해도 리터럴 문자열을 전달하고 대괄호 안의 속성을 해결하지 않으므로 작동하지 않습니다. 나는 아무 소용이없는 따옴표와 함께 또는 그것없이 시도했다.ISCmdBld.exe에 속성 전달

디렉토리에 빌드 된 설치 실마리를 참조 할 수 있습니까?

답변

1

이렇게하면 해결할 수 없습니다. 보시다시피 -z INSTALLDIR = "[ParentFolder] Subdir"을 ISCmdBld에 전달하면 INSTALLDIR에 해당 값이 적용됩니다. 왜이 기능이 작동하지 않습니까? 즉, Windows Installer가 작동하는 방식이 아니기 때문입니다.

수행해야 할 작업을 이해하려면 먼저 32 비트 상위 폴더로 MSI를 작성한 다음 64 비트 상위 폴더로 MSI를 작성하고 diff 도구 (예 : InstallShield MSI Diff)를 사용하여 그들은 다릅니다. (실제로이 부분은 동일하게 변경되므로 ISM 사본에서이 작업을 수행 할 수 있습니다.) Directory table에서 INSTALLDIR 레코드의 디렉토리 상위 구조가 변경된 것을 볼 수 있습니다. 예 : Rob Mensching's Deciphering the Msi Directory Table 시리즈의 차이점을 이해하지 못한 경우

불행하게도 빌드시이 변경 작업을 수행하는 간단한 명령 행 방식은 없습니다.

  • 실행시

    에 INSTALLDIR을 변경
  • 사용 설정 디렉토리 사용자 지정 작업 프로젝트를 빌드하기 전에 디렉토리 구조를 변경하는 자동화의 일종 (아마도 ISWiProject's INSTALLDIR property in the InstallShield automation interface)를 사용 : 그래서 당신은 두 가지 옵션이 있습니다

    참고 : 두 개의 이러한 사용자 지정 동작은 런타임시 다른 조건 (ISCmdBld를 통한 속성 등)에서 설정 한 조건을 참조하여 런타임에 두 개의 대체 위치 중 하나를 선택할 수 있습니다.

+0

나는 자동화 인터페이스가 가장 단순하다고 생각하기 때문에 그 옵션을 사용할 것입니다. 고마워요 @ 마이클 – user616