2017-09-04 10 views
1

내 setup.exe가 주요 업그레이드 모드 인 경우 InstallShield를 사용하고 셸 스크립트 (사용자 지정 작업)를 실행하려고합니다. 설치 프로그램이 설치된 버전을 먼저 제거한 다음 setup.exe 버전을 설치하기 때문에 실제로 설치 프로그램이 MAJOR UPGRADE 모드로 실행되는지 확신합니다.메이저 업데이트 InstallShield 사용자 지정 작업

그러나, 나는 Behavior and Logic 아래에 추가 작업이 내가 IS_MAJOR_UPGRADE하지만 아무것도로 <First Action>Install UI Sequenceinstall UI Condition을 설정 ... 발생하지 않습니다 .. 시퀀스에서 내 사용자 지정 작업을 삽입해야

을 (후 어떤 순서로) 나는 그것이 (업데이트 된 버전의 설치 전에) 제거의 시작 부분에서 주요 업 그레 이드 프로세스와 장소에서 일어나는 원한다면?

아이디어가 있으십니까? 내가 도대체 ​​뭘 잘못하고있는 겁니까?

답변

1

설치가 주요 업그레이드의 일부로 제거되면 자동 모드에서 실행됩니다. 이는 GUI가없고 InstallUISequence 시퀀스에 삽입 한 작업이 절대로 실행되지 않는다는 것을 의미합니다. 전문 용어에서는 전체 InstallUISequence를 건너 뛰고 InstallExecuteSequence 만 실행합니다.

정확한 조언을 제공하기 위해 귀하의 행동이 무엇을하는지 알아야합니다. 시스템을 변경하고 있습니까, 아니면 정보를 표시하거나 사용자 입력을 요청하는 것입니까? 사용자 지정 작업이 시스템을 변경하면 InstallUISequence가 아닌 InstallExecuteSequence에 삽입해야합니다 (UI 시퀀스에서 시스템을 변경하지 않아야 함). 다른 경우에는 사용자 지정 작업을 두 시퀀스에 모두 삽입해야합니다. 모든 작업은 수행중인 작업에 따라 다릅니다. Installshield Express btw를 사용하고 있습니까?

사용자의 상태는 IS_MAJOR_UPGRADE 일 수 있지만 Windows Installer의 기본 조건 인 UPGRADINGPRODUCTCODE을 사용할 수도 있습니다. 전자는 InstallShield의 자체 사용자 지정 조건입니다. 표준 Windows Installer 속성을 선호합니다.

사용자 지정 작업 조건에 대한 편리한 차트는 Flexera (InstallShield 제조업체)의 https://resources.flexera.com/web/pdf/archive/IS-CHS-Common-MSI-Conditions.pdf의이 PDF를 참조하십시오. 본인은 이러한 조건을 시험하지 않았으므로 철저히 시험하십시오.

예기치 않은 시간에 사용자 지정 작업을 실행하는 잘못된 조정은 매우 일반적입니다.. 조치가 실제로 실행되어야하는지 자세히 분석하십시오. 모든 업그레이드에서 실행해야하는 경우 (주요 업그레이드 또는 수동 제거로 시작한 제거인지 여부는 관계 없음) REMOVE~="ALL" (모든 제거에 대해 유효) 일 수 있습니다. 개인적으로 나는 내 모든 조건에 NOT PATCH을 추가하여 모든 사용자 지정 작업이 패치 모드로 실행되는 것을 막고 싶습니다. 위의 링크 된 차트를 사용하여 컨디셔닝을 결정하십시오.

+0

자세한 답변을 주셔서 감사합니다. 그 일을 .. – Noam

+1

다행. 설치 GUI의 직접 모드 사용자 지정 작업을 사용하여 시스템을 변경하지 말 것을 잊지 마십시오. 이러한 작업은 모두 자동 모드에서 건너 뛰고 자동 실행시 설치가 완료되지 않습니다. 상승 된 권한으로 MSI 설치를 실행하는 일반 사용자 (즉석 모드 작업에 대한 사용 권한이 거부 됨)에 대한 설정도 실패합니다. 자세한 내용은 다음을 참조하십시오. [**이 응답의 섹션 10 ** 및 해당 섹션의 링크 된 응답]] (https://stackoverflow.com/questions/45840086/how-do-i-avoid-common-design -flaws-in-my-wix-msi-deployment-solution)을 사용합니다. –