2009-11-16 11 views
17

He creado un instalador Wix y lo he empaquetado en un programa de arranque.Eliminar los botones "Cambiar" y "Reparar" en Agregar o quitar programas

Cuando ejecuto el programa de arranque se crea las siguientes entradas en el registro:

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

Cuando ejecuto el programa de arranque que se instale bien y cuando corro el Agregar/Eliminar programas se muestra "Cambio botón "y botón" Reparar ". Mi requisito es que

  • Quiero que estos dos botones para sean uno como "Cambio/reparación" como en otras aplicaciones
  • Cuando selecciono este botón Quiero que mi programa de arranque (setup.exe) para correr y no el MSI

Ésta es mi área de código:

<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> 

Respuesta

-1

Aquí está algunos ejemplos clave de registro de NSIS. Debería ponerlo en la dirección correcta.

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

Hola, Gracias a su rápida respuesta. Voy a probar este "NoModify" y "NoRepair". Mientras tanto, esto no termina mi requisito básico. Cuando selecciono el botón Eliminar, quiero que el programa de arranque (setup.exe) se ejecute en lugar de msiexec. ¿Cómo se puede lograr esto? Puedo ver la configuración.exe en la carpeta "C: \ Documents and Settings \ All Users \ Application Data \ Installations \ {27161ACE-7BDE-44a2-862D-A8158FCB9201}" del sistema donde se realiza la instalación. Saludos, tvks – user187023

+0

Hola, Intentó insertar estos dos "NOMODIFY" y "NoRepair". Es inútil. No hay cambio. :( Saludos, tvks – user187023

+3

-1 Nunca piratear el registro. – RedX

35

puede establecer el ARPNOMODIFY y ARPNOREPAIR propiedades en Wix, que se desactivará el "cambio" y las opciones de "reparación" para su producto en la lista de "añadir/quitar programas". (Esto es en realidad equivalente a la respuesta de leppie, pero es una idea mejor utilizar las propiedades de Windows Installer en lugar de la piratería en el Registro directamente.)

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

hi wcoenen, Mi requisito no es sólo para desactivar Modificar y reparación en el Agregar/Quitar programas, sino también para que la pantalla como botón Quitar Cambiar/Eliminar. Cuando hago clic en este botón, quiero que mi setup.exe funcione. Gracias por su respuesta BR., tvks – user187023

+0

Esto es técnicamente cierto. Las propiedades solo tienen que establecerse en algo, pero por alguna razón Realmente estoy acostumbrado a ver 1 en la tabla de propiedades y no en otro texto. Probablemente porque esta es la forma en que InstallShield lo creó durante muchos años antes de usar WiX. –

+0

Gracias muy útiles –

5

Según @Wim Coenen Para desactivar Eliminar “Cambio” y “ Reparar "botones en Agregar o quitar programas establece la siguiente propiedad.

ARPNOREPAIR y ARPNOMODIFY

Esto es código de ejemplo para reparación y desactivar la opción de actualización.

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

Sugerencia para la primera parte de la pregunta:

"Quiero que estos dos botones para sean uno como 'Cambio/reparación' como en otras aplicaciones"

soy ejecutando Windows 7 y lo único cerca de esta opción es que algunas aplicaciones tengan 'Desinstalar/Cambiar' fusionadas.

Para completar UN botón (existente en Wix 3.7) 'Desinstalar/Cambiar' en lugar de 'Desinstalar' y 'Cambiar' por separado, la etiqueta del paquete debe ajustarse como se indica a continuación.

<Bundle ... 
     DisableModify="button"> 
Cuestiones relacionadas