2010-06-24 5 views
3

WiX로 설치 프로그램을 완료했습니다. 설치가 완료되면 Explorer 프로세스에서 일부 코드를 주입하는 응용 프로그램을 시작합니다.WiX 제거 - 다시 시작 관리자 전에 응용 프로그램을 닫습니다.

현재 제거 프로그램을 다시 시작하면 관리자가 내 응용 프로그램과 탐색기를 종료합니다. 대신 응용 프로그램을 수동으로 닫고 싶습니다 (명령 줄에서 -exit 명령을 사용하여 다시 실행하면됩니다). 나는 그것을하는 맞춤 행동이있다.

는 여기에 지금까지 시도 무엇 :이 작동하지 않습니다

<CustomAction ExeCommand="-exit" FileKey="MyApp.exe" Id="CloseMyApp" Impersonate="yes" Return="ignore" /> 

<InstallExecuteSequence> 
    <RemoveExistingProducts After="InstallInitialize" /> 
    <Custom Action="CloseMyApp" Before="RemoveFiles" /> 
</InstallExecuteSequence> 

. 작업은 재시작 관리자 세션 이후에 수행됩니다. 재시작 관리자가 나타나서 내 앱과 탐색기를 닫으라고 요청합니다. 액션은 나중에 실행되지만 앱은 이미 사라졌습니다.

<InstallExecuteSequence> 
    <RemoveExistingProducts After="InstallInitialize" /> 
    <Custom Action="CloseMyApp" Before="RemoveExistingProducts" /> 
</InstallExecuteSequence> 

이 또한 작동하지 않습니다

그래서 나는이 시도. 작업이 너무 늦게 완료되었습니다. 나는 또한 경고 LGHT1076 : ICE63 : InstallInitialize와 RemoveExistingProducts 사이에 어떤 행동이 떨어진다. "

기본적으로 - 제거 및 재시작 관리자 세션 전에 사용자 지정 작업을 어떻게 수행합니까?

나는 Impersonate = "no"를 사용하면 추측하고 있는데, 적시에 실행될 수 있지만 옵션은 아닙니다. 새 프로세스는 창을 조회하고 메시지를 보내기 때문에 닫아야하는 프로세스와 동일한 사용자에 대해 실행되어야하기 때문입니다. 프로세스가 다른 사용자의 것이라면 그렇게하는 것이 훨씬 까다 롭습니다.

아이디어가 있으십니까?

답변

5

다시 시작 관리자를 처리 할 때 InstallAlert 사용자 지정 작업이 실행되기 전에 CloseMyApp 사용자 지정 작업이 필요합니다 (doc). 또는 MSIDISABLERMRESTART 또는 MSIRESTARTMANAGERCONTROL 속성을 사용하여 다시 시작 관리자를 사용하지 않도록 설정할 수 있습니다.

관련 문제