2012-05-30 2 views
4

부트 스트 래퍼가 설치 한 모든 항목을 제거하기위한 바로 가기를 만들려고합니다. 그래서 단순히 프로그램을 추가하고 제거 할 때 제거 작업과 동일한 작업을 수행하려고합니다. Wix 부트 스트 래더 제거 바로 가기

내가 드 부트 스트 래퍼 패키지 캐시 {GUID}에 설치되어있는 것을 발견 [bootstrappername] .EXE는이 부트 스트 래퍼/제거 호출에 바로 가기를 설치 설치하는 MSI 패키지의

. 그러나 문제는 패키지의 GUID가 모든 빌드에서 다시 생성된다는 것입니다. 그래서 나는 어떤 방법으로 그것을 msi 속성으로 설정해야합니다. 그러나이 작업을 수행하는 방법을 알아낼 수 없다는 것은 나에게 GUID가 빌드 중에 알려지지 않았지만 빌드가 완료된 후에 만 ​​나타납니다.

캐시 된 부트 스트 래퍼의 위치를 ​​확인하는 또 다른 방법이 있습니까?

답변

-1

bundle.wxs에서 정의한 번들 upgradecode를 사용하여 위치를 확인할 수 있습니다.

는 번들의 위치를 ​​제거 창에 레지스트리 경로를 사용

HKEY_LOCAL_MACHINE \ 소프트웨어 마이크로 소프트 \ WINDOWS \ CurrentVersion을 \ 제거 {번들의 upgradecode}

또는 64 비트 OS

HKEY_LOCAL_MACHINE \ \ SOFTWARE \ Wow6432Node \ Microsoft \ Windows \ CurrentVersion \ Uninstall {번들의 코드 업그레이드}

BundleCachePath에는 다음이 포함되어 있습니다. 그는 번들이 캐시 된 패키지 캐시에 bootstrapper.exe 파일 이름을 포함한 전체 경로를 지정합니다.

또한 값이 아닌 자동 모드에서 설치 제거를 시작하기 위해 전체 조용한 제거 명령 또는 의 UninstallString을 포함 QuietUninstallString를 사용할 수 있습니다. 당신이 사용 BA를 관리하는 경우

+0

의 모든

<Shortcut Id="Shortcut1" Name="Uninstall" Description="Uninstall" Target="[UNINSTALLER_PATH]" Arguments="/uninstall" WorkingDirectory="Programmenufolder" />

죄송합니다 Burn의 구현 세부 사항 : 문서화되지 않았으며 변경 될 수 있습니다. –

1

이 시도 할 수 있습니다 :

당신의 Bundle.wxs에서 체인 MsiPackage와 같은 MsiProperty를 추가 : (전화 설치 작업을하기 전에) 코드

<MsiPackage SourceFile="Setup.msi"> <MsiProperty Name="UNINSTALLER_PATH" Value="[UNINSTALLER_PATH]"/> </MsiPackage>

어딘가에 ,이 같은이 변수에 설정된 값이 필요합니다 Engine.StringVariables["UNINSTALLER_PATH"] = string.Format(@"{0}\{1}\{2}\{3}.exe", Environment.GetFolderPath(Environment.SpecialFolder.CommonApplicationData), "Package Cache", Engine.StringVariables["WixBundleProviderKey"], ProductName);

Environment.GetFolderPath (Environment.SpecialFolder.CommonApplicationData) - 경로 % systemdi R의 % \ 경우 ProgramData

번들 캐싱을

Engine.StringVariables [ "WixBundleProviderKey"] 설치할 경우 ProgramData에서

패키지 캐시 - 폴더 명 - 폴더 (GUID)의 이름 번들을

제품명을 캐싱하여 생성 - 다른 이름 귀하의 부트 스트 래퍼 "exe"

마지막으로 귀하의 제품에.WXS 당신은 당신이 UNINSTALLER_PATH 값을 전달해야 할 속성 "인수"세트 = "/ 제거를"바로 가기 일반적인 방법을 만들 수 있지만 "대상"에서 할 수 있습니다 내 영어 :