2009-11-16 4 views
17

Wix 설치 프로그램을 만들고 부트 스트랩 프로그램에 패키지했습니다.프로그램 추가/제거에서 "변경"및 "복구"버튼 제거

나는 그것이 레지스트리에서 다음 항목을 작성하는 부트 스트랩 프로그램 실행 : 나는 그것을 잘 설치하고 내가 추가를 실행할 때/프로그램을 제거 부트 스트랩 프로그램을 실행하면

alt text http://n2.nabble.com/file/n4011693/Up.jpg

그것을 보여줍니다 "변경 "버튼과"복구 "버튼을 클릭하십시오. 내 요구 사항은

  • 나는이 두 버튼은 다른 응용 프로그램처럼 "변경/수리"하나되고 싶어한다는 것입니다
  • 나는 내 부트 스트랩 프로그램 (SETUP.EXE)을 실행하지하려면이 버튼을 선택하면 MSI는

이 내 코드 영역 : 여기

<Property Id="EXTUNINSTALL" Value="0"/> 
<Property Id="UNINSTALLEXE" Value="msiexec.exe"/> 

<!-- The Uninstall shortcut target executable & arguments--> 
<CustomAction Id="SetUNINSTALLEXE_EXT" Property="UNINSTALLCMD" 
        Value="[INSTALLEREXEDIR][INSTALLEREXE]"/> 
<CustomAction Id="SetUNINSTALLARG_EXT" 
       Property="UNINSTALLARG" 
       Value="/MAINTENANCE /SILENT="SGWLRPFCE" 
        /LANG="[ProductLanguage]""/> 
<CustomAction Id="SetSYSTEMARPCOMPONENT" 
       Property="ARPSYSTEMCOMPONENT" 
       Value="1"/> 

<CustomAction Id="SetUNINSTALLARG" 
       Property="UNINSTALLARG" 
       Value="/x [ProductCode]"/> 
<CustomAction Id="SetUNINSTALLEXE" 
       Property="UNINSTALLCMD" 
       Value="[SystemFolder]msiexec.exe"/> 

<CustomAction Id="SetARPINSTALLLOCATION" Property="ARPINSTALLLOCATION" 
     Value="[MAININSTALLERFOLDER]" /> 

<InstallExecuteSequence> 
    <RemoveExistingProducts Before="InstallInitialize" /> 
    <Custom Action="SetARPINSTALLLOCATION" After="CostFinalize"/> 
    <Custom Action="SetUNINSTALLEXE_EXT" 
      After="SetARPINSTALLLOCATION"><![CDATA[EXTUNINSTALL=1]]></Custom> 
    <Custom Action="SetUNINSTALLARG_EXT" 
      After="SetUNINSTALLEXE_EXT"><![CDATA[EXTUNINSTALL=1]]></Custom> 
    <Custom Action="SetSYSTEMARPCOMPONENT" 
      After="SetUNINSTALLARG_EXT"><![CDATA[EXTUNINSTALL=1]]></Custom> 
    <Custom Action="SetUNINSTALLARG" 
      After="SetSYSTEMARPCOMPONENT"><![CDATA[EXTUNINSTALL=0]]></Custom> 
    <Custom Action="SetUNINSTALLEXE" 
      After="SetUNINSTALLARG"><![CDATA[EXTUNINSTALL=0]]></Custom> 
</InstallExecuteSequence> 

답변

-1

는 NSIS에서 일부 레지스트리 키의 예입니다. 올바른 방향으로 가야합니다.

HKLM\Software\Microsoft\Windows\CurrentVersion\Uninstall\Example2 "NoModify" 1 
HKLM\Software\Microsoft\Windows\CurrentVersion\Uninstall\Example2 "NoRepair" 1 
+0

안녕하세요, 귀하의 빠른 회신 고맙습니다 . "NoModify"및 "NoRepair"를 사용해 보겠습니다. 한편 이것은 내 핵심 요구 사항을 완료하지 않습니다. 제거 단추를 선택하면 부팅 프로그램 (setup.exe)이 msiexec 대신 실행되기를 원합니다. 어떻게이 일을 성취 할 수 있습니까? 설정을 볼 수 있습니다.설치가 완료된 시스템의 "C : \ Documents and Settings \ All Users \ Application Data \ Installations \ {27161ACE-7BDE-44a2-862D-A8158FCB9201}"폴더에 exe를 설치하십시오. 감사 tvks – user187023

+0

안녕,이 두 가지 "NoModify"와 "복구 할 수 없음"을 삽입 시도 . 사용하지 마십시오. 변화가 없습니다. :( 감사합니다, tvks – user187023

+3

-1 결코 레지스트리를 해킹하지 않습니다. – RedX

35

당신은 "변화"와 "프로그램 추가/제거"목록에서 제품에 대한 "복구"옵션을 사용하지 것이다, 윅스의 ARPNOMODIFYARPNOREPAIR 속성을 설정할 수 있습니다. (이것은 실제로 leppie의 대답에 해당하지만, 오히려 직접 레지스트리에 해킹보다 Windows 설치 속성을 사용하는 것이 더 좋습니다.) @Wim COENEN 당으로

<Property Id="ARPNOREPAIR" Value="yes" Secure="yes" /> 
<Property Id="ARPNOMODIFY" Value="yes" Secure="yes" /> 
+1

하이 wcoenen, 내 요구 사항/프로그램을 제거하지만, 또한 제거 버튼 디스플레이를 만들기 위해 단지 사용하지 않도록 수정 및 추가에 수리되지 않습니다 변경/제거 :이 버튼을 클릭하면 setup.exe가 작동합니다. BR., tvks – user187023

+0

이것은 기술적으로 사실입니다. 어떤 이유로 설정해야합니다. 저는 실제로 1의 속성 표와 다른 텍스트를 보는 데 익숙합니다. 아마도 이것이 InstallShield가 WiX를 사용하기 전에 수년 동안 저술 한 방식 일 것입니다. –

+0

매우 유용한 감사 –

5

"변경"및 "제거하지 않으려면 프로그램 추가/제거에서 "복구"단추는 다음 속성을 설정합니다.

ARPNOREPAIRARPNOMODIFY는

이 샘플 비활성화 수리에 대한 코드 및 옵션을 업그레이드합니다.

는 "다른 응용 프로그램처럼"변경/수리

나는 "나는이 두 개의 버튼이 하나가되고 싶어요"질문의 첫 번째 부분에 대한

<Property Id="ARPNOREPAIR" Value="yes" Secure="yes" /> 
<Property Id="ARPNOMODIFY" Value="yes" Secure="yes" /> 
3

제안 Windows 7을 실행하고이 옵션에 가까운 유일한 것은 '제거/변경'이 병합 된 일부 응용 프로그램입니다.

'제거'와 '변경'대신 '제거/변경'버튼을 하나만 사용하려면 다음과 같이 번들 태그를 조정해야합니다.

<Bundle ... 
     DisableModify="button"> 
관련 문제