2013-11-01 7 views
0

WIX를 사용하여 독립 실행 형 자동 제거 프로그램을 만들고 싶습니다. 설치 프로그램을 두 번 클릭하면 설치 제거 프로그램이 제대로 작동하지 않을 때 제품을 제거 할 수 있습니다. (일부 사용자는 다른 도구를 사용하여 수동으로 제거합니다). 이전에 설치 한 프로그램의 동일한 제품 ID 및 패키지 ID를 사용하는 .wxs 파일이 있으며 msiexec/x에서 실행하면 이전에 설치 한 제품을 완벽하게 제거합니다. 그러나 두 번 클릭하면 (이 모든 사용자가 수행 할 수 있음) 설치 제거가 아니라 설치가 실행됩니다. 내가독립 실행 형 WIX 제거 프로그램

<Property Id="REMOVE" Value="ALL"/> 
<Property Id="ACTION" Value="UNINSTALL"/> 

를 추가하고 모든 InstallExecuteSequence에서 조치가 "설치"체크를 사용하지 않는 확인하고 있지만, 제품이 여전히 성공적으로 실행 한 후, 로그 파일이 여전히 조치를 실행 보여줍니다 설치 시도하여 설치합니다

MSI (C) (A8 : F8) [15 : 42 : 08 : 324] : 속성 변경 : ACTION 속성을 추가합니다. 그 값은 'INSTALL'입니다. MSI (c) (A8 : F8) [15 : 42 : 08 : 324] : 참고 : 1 : 2205 2 작업 수행 : 설치 : 3 : ActionText 동작 15:42:08 : INSTALL. 작업 시작 15:42:08 : INSTALL.

명령 줄을 사용하거나 프로그램 추가/제거 항목을 사용하지 않고 .msi 파일을 강제로 제거하는 방법이 있습니까? ARPSYSTEMCOMPONENT 사용에 대한 항목을 보았지만이를 수행하는 데 필요한 정보가 충분하지 않습니다.

+0

[ARPSYSTEMCOMPONENT] (http://msdn.microsoft.com/en-us/library/aa367750%28v=vs.85%29.aspx)는 Windows Installer의 동작과 아무 관련이 없습니다. 모든 것은 ARP (프로그램 및 기능 프로그램 추가/제거)에서 Windows Installer가 설치시 생성 한 제거 항목을 표시하지 않으며 제거시 제거하지 않도록합니다. –

답변

0

나는 그렇게 생각하지 않는다. 당신은 물론, exe를 사용하여 그것을 할 수 있습니다. 또한 동일한 제품 코드로 다른 msi를 만드는 대신 원본 msi 파일을 사용하는 것이 좋습니다.

exe의 경우 chainer/bundler/downloaders를 원하는만큼 사용할 수 있습니다. NSIS와 WiX의 자체 부트 스트 래퍼, 심지어 WinZip이 있습니다.

설치 제거 명령을 실행하는 많은 패키지 관리 시스템은 설치 오류가있는 경우 설치 명령을 먼저 실행합니다. 이 이론은 설치 프로그램에 의해 배치 된 중요한 데이터가 존재하지 않으면 제거 프로그램을 제대로 실행할 수 없다는 것입니다. (E.G., WPKG). Windows Installer의 경우 데이터가 사용자에게 표시되지 않으므로 대개 적용되지 않습니다. 그러나 원래 msi의 새로운 복사본을 사용하여 다시 설치 및/또는 복구하면 작업을 수행 할 수 있습니다.