2013-04-01 1 views
0

Installshield 2011을 사용하여 설치 프로그램을 개발하고 있으며 프로젝트 유형이 기본 MSI이므로 제거하는 동안 이러한 방식으로 사용자 지정 작업이 수행됩니다. 여기 내가 구성된 사용자 지정 작업 속성의 스냅 샷이 첨부됩니다.제거 도중 사용자 지정 작업이 작동하지 않습니다.

Sanpshot of attached custom action for uninstallation

내가 여기에 직면하고 문제가 구성된 사용자 지정 작업은 설치 제거 중에 실행하기되지 않고, 결국 설치된 응용 프로그램은 제거되지 않습니다.

00532 :

자세한 로깅의 항목은 다음 (알 수 없음) : (알 수 없음) :하면 Installshield 11시 1분 17초 : 등록 MSI는 서버 ...

00533의 installshiled 11시 1분 : 17 : 는 스크립트 호출 MyFunction 함수

은 00,534 (불명)의 installshiled는 11시 1분 17초는 : CallScriptFunctionFromMsiCA()는

00 끝나는 535 : (알 수없는) : (알 수 없음) :에서 CustomAction NewCustomAction1 실제 오류 코드 1603 (번역 샌드 박스 내부에 발생하는 경우이 100 % 정확하지 않을 수 있습니다)

00536을 반환 NewCustomAction1 : 액션 11시 1분 17초을했다. 반환 값 3

00537 : (알 수 없음) : 작업이 11:01:17 : INSTALL으로 종료되었습니다. 반환 값 3.

00,538 (속성) : 속성 (S) = DiskPrompt 1

00,539 (속성) : 속성 (S) = {UpgradeCode 40AD9645-1459-4C32-8285-D1C0B163361D }

00,540

(속성) : 속성 (S) : 제품 코드 = {84BDE810-2C23-48CA-A638-5B131DA3B57F가}

내가 여기에 아무것도없는 건가요 ...?

감사합니다,

Chetan에

+0

사용자 지정 동작은 무엇입니까? 제거 프로세스에서 (이미) 제거 된 파일과 상호 작용하려고합니까? 사이드 노트 : 저는 전염병과 같은 InstallScript를 피합니다. – NGaida

+0

인사말 NGaida, 현재 사용자 지정 작업은 내가 무엇을하고있는 것이 아니라는 점에서 팝 메시지 만 포함합니다. 기본적으로 나는 그것을 제거하기 전에 app.config 파일에서 XML 태그를 제거하는 것입니다 내 실제 구현을 할 수 전에 그것을 테스트 싶었어요. – Chetan

+0

InstallShield 12부터 InstallScript는 견고합니다. 더 이상 투자하지 않습니다. 나는 C#/DTF와 때때로 C++에서 모든 것을하는 경향이 있습니다. 하지만 나는 InstallScript를 피하지 않는다. –

답변

2

내 첫 번째 질문은 왜 모든 사용자 지정 작업을 작성하는 것입니다 도와주세요? InstallShield의 기본 제공 사용자 정의 액션 (XML 파일 변경)에는 이미 제거시 요소를 제거 할 수있는 기능이 있습니다. 내 두 번째 관찰은 InstallScript가 언어로서 견고하다는 것입니다. 문제를 일으키는 경향이있는 사용자 지정 작업을 올바르게 디자인하는 방법에 대한 이해가 부족합니다. 나는 읽었다 :

Installation Phases and In-Script Execution Options for Custom Actions in Windows Installer

는 InstallInitialize과 InstallFinalize를 사이에 시스템 상황에 이연으로 시스템을 수정하는 모든 사용자 지정 작업을 예약해야합니다. 또한 CustomActionData 패턴을 사용하고 설치 제거가 취소되거나 실패 할 경우 해당 롤백 조치를 가져야합니다. 그렇지 않으면 응용 프로그램이 설치되었지만 태그가없는 상황이 발생할 수 있습니다.

그리고 물론 이미 존재하는 바퀴를 재발 명하지 마십시오. (XMLFileChanges) 거의 잘 진행되지 않습니다.

+0

처음 나왔을 때 ISWI로 다시 InstallScript 방식으로 레코딩했습니다. 그 이후로 피하고 C++ 사용자 정의 작업을 사용했습니다. 나는 완전히 동의한다. 바퀴를 다시 발명하지 마십시오. 당신이 필요하다고 느끼면, 당신은 왜 자신에게 묻고 있어야합니다. – NGaida

+1

동의. 당시에는 엔진 런타임을 부트 스트 래퍼로 사용하는 setup.exe가 있어야했고 모든 종류의 DCOM/ROT 문제로 인해 오류가 발생했습니다. 또한 지연된 사용자 지정 작업이 MSI 핸들에 대한 액세스를 허용함으로써 MSI 보안 주체를 위반했습니다. 그러나 이것 모두는 7 년 전에 고쳐졌습니다 : http://blog.iswix.com/2006/04/installshield-12-beta2.html –

+0

고마워요. 나는 XMLFileChanges로 갈 것입니다. – Chetan