2011-02-27 15 views
4

Microsoft Visual Studio 2010을 사용하여 간단한 .EXE 응용 프로그램 용 .MSI 설치 프로그램을 만듭니다.MSI 만들기 : 업그레이드하기 전에 응용 프로그램 종료

.EXE가 계속 실행되는 동안 업그레이드를 설치하면 문제가 발생합니다 (재부팅 할 때까지).

.MSI 설치 프로그램이 설치/업그레이드하기 전에 프로세스를 종료하고 싶습니다.

오카에서이 작업을 수행하는 방법을 알려주시겠습니까?

EDIT : 사용중인 .EXE 때문에이 문제가 발생하는 것을 보았지만 .CHM 도움말 파일도 업그레이드시 열렸 기 때문에 본 적이 있습니다. 따라서 프로세스 종료만으로는 불가능합니다. 이 문제를 해결하기에 충분합니다.

답변

1

응용 프로그램 (사용자가 작성한 사용자 정의 EXE 또는 DLL)을 중지하는 custom action을 만들 수 있습니다. 예를 들어 WM_CLOSE를 주 응용 프로그램 창에 보낼 수 있습니다 (응용 프로그램에서이 메시지를 처리해야 함).

이 사용자 지정 작업은 InstallExecuteSequence 테이블에서 InstallValidate 작업 전에 예약해야합니다.

+0

제 편집에 따르면이 대답으로는 충분하지 않습니다. 그러나 원래의 질문에 직접 답했기 때문에 +1이 있습니다. 다음 번엔, 내 문제에 초점을 맞출 것이고, 대답에 대한 나의 생각에 집중하지 않을 것입니다. – servermanfail

3

설치자에게 MsiRMFilesInUse Dialog을 알려야합니다.

+0

내 도움말 파일을 검색 할 수 있습니까? – servermanfail

+0

설명서에 명시된 바와 같이 : "MsiRMFilesInUse 대화 상자를 사용하여 설치시 덮어 쓰거나 삭제해야하는 파일을 현재 실행중인 프로세스 목록을 표시 할 수 있습니다."안전하게 RestartManager 이벤트를 닫으려면 RestartManager 게시 이벤트에 의존 할 수 있습니다. 신청. 그러나이 대화 상자는 Windows installer 4.0 이상에서 사용할 수 있습니다. 하위 버전에서는 FilesInUse 대화 상자를 사용할 수 있습니다. – Ciprian

+0

나는 어디에서나 보았지만 설치에 기본 대화 상자를 추가하는 방법에 대한 도움을 얻을 수는 없습니다. 도울 수 있니 ? VS 설치 프로그램에 대해 얘기하고 있습니다. –

0

응용 프로그램과 도움말 파일을 닫는 사용자 지정 동작을 작성할 수 있습니다. 당신은 창을 찾을 수 있어야합니다

이를 FindWindow를 사용하여 이들 모두 처리합니다 실행을 위해 http://msdn.microsoft.com/en-us/library/ms633499(v=vs.85).aspx

, 당신이를 FindWindow에 해당하는 윈도우 클래스 또는 제목을 사용할 수 있어야합니다. 도움말 파일의 경우 FindWindow에 적절한 도움말 창 제목을 사용할 수 있어야합니다.

도움이 되었기를 바랍니다.

관련 문제