2011-03-11 4 views
2

우리 소프트웨어의 최신 버전을 사용하려면 WiX 3.5를 사용하는 설치 프로그램을 작성하고 있습니다. 이전 버전의 설치 프로그램은 InstallAware 8을 사용하여 작성되었습니다. 설치하는 동안 이전 버전을 제거하려고하지만 InstallAware는 정상적인 RemoveExistingProducts 메소드가 작동하지 않도록 몇 가지 이상한 작업을 수행합니다. msiexec/x {PRODUCTCODE}도 마찬가지입니다.RemoveExistingProducts에서 .msi 제거 위치 지정

RemoveExistingProducts가 실행되면 이전 설치에서 .msi 파일의 위치를 ​​묻는 대화 상자가 나타납니다. 레지스트리에서 그 위치를 찾을 수 있으며 대화 상자에 해당 위치를 입력하면 제거가 정상적으로 작동합니다. 그러나 대화 상자가 표시되지 않도록하고 싶습니다. RemoveExistingProducts에서 찾을 수있는 방법이 있습니까?

답변

2

소스에 대한 프롬프트를 회피하는 몇 가지 규칙이 위반 된 것으로 보입니다. these recommendations이 도움이되는지 확인하십시오.

+0

특히 MsiSourceListAddSource 함수가 프롬프트에 해당 위치에 트릭을 제공하면 도움이 될 것 같습니다. –

0

HKLM\Software\Microsoft\Windows\CurrentVerison\Uninstall\<GUID_or_product_name>\WindowsInstaller 키가 1로 설정된 경우 HKLM\Software\Microsoft\Windows\CurrentVersion\Installer\UserData\S-1-5-18\Products\<mangled_guid>\InstallProperties\InstallSource을보고 .msi가 캐시 된 것으로 판단되는 곳을 확인해야합니다. 기본적으로 InstallSource를 검색 할 때 올바른 레지스트리 위치를 찾고 있는지 확인하십시오.

1

이 답변 외에도이 답변을 확인하십시오 : "different ways to uninstall an MSI".

이것은 여기의 UninstallString \ 마이크로 소프트 \ 윈도우 \ CurrentVersion \ 제거 \ 당신의 GUID \

HKEY_LOCAL_MACHINE \ 소프트웨어 : 이전 설치에 대해 정의 된 사용자 정의 설치 제거 문자열이있는 경우

점검에서 볼 수 제어판의 애플릿 추가/제거에서 가장 많이 사용되는 위치입니다. 여기서 설치 제거 문자열을 발견하면 새 설치를 실행하기 전에 사용자 정의 조치를 통해 설치 제거를 실행할 수 있습니다. 좀 못생긴, 나는 setup.exe를 통해 설치 프로세스를 실행하는 것을 선호합니다.

또 다른 위치는 다음과 같습니다 마이크로 소프트 \ WINDOWS \ CurrentVersion을 \ 설치 \ UserData를 \ S-1-5-18 \ 제품 여기

당신이 포장 된 GUID를 찾을 수 \

HKEY_LOCAL_MACHINE \ 소프트웨어. 각 GUID 아래를 확인한 다음 InstallSource에 대해서는 "InstallProperties"아래를 확인하십시오. 이 경로는 설치 엔진이 응용 프로그램을 제거하는 데 필요한 MSI 파일을 검색하는 검색 경로입니다.