2009-11-16 12 views
17

Ho creato un programma di installazione Wix e l'ho imballato in un programma di avvio.Rimuovere i pulsanti "Cambia" e "Ripara" in Installazione applicazioni

Quando eseguo il programma di bootstrap che crea le seguenti chiavi nel Registro di sistema:

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

Quando eseguo il programma di bootstrap installa bene e quando ho eseguito l'Aggiungi/Rimuovi programmi mostra "Change "pulsante e pulsante" Ripara ". Il mio requisito è che

  • Voglio che questi due pulsanti per essere uno come "Cambia/riparazione" come in altre applicazioni
  • Quando seleziono questo pulsante voglio che il mio programma di bootstrap (setup.exe) da eseguire e non MSI

Questo è il mio prefisso:

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

risposta

-1

Ecco alcuni esempi chiave del Registro di sistema da NSIS. Dovresti metterti nella giusta direzione.

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

Ciao, Thanx vostra risposta rapida. Proverò questo "NoModify" e "NoRepair". Nel frattempo questo non finisce il mio requisito principale. Quando seleziono il pulsante Rimuovi, voglio che il programma di avvio (setup.exe) venga eseguito al posto di msiexec. Come può essere realizzato? Sono in grado di vedere il setup.exe nella cartella "C: \ Documents and Settings \ All Users \ Application Data \ Installations \ {27161ACE-7BDE-44a2-862D-A8158FCB9201}" del sistema in cui viene eseguita l'installazione. Saluti, tvks – user187023

+0

Ciao, provato inserendo questi due "nomodify" e "NoRepair". Inutile Non c'è nessun cambiamento. :( saluti, tvks – user187023

+3

-1 mai incidere il Registro di sistema. – RedX

35

è possibile impostare le proprietà ARPNOMODIFY e ARPNOREPAIR in Wix, che consente di disattivare il "cambiamento" e le opzioni di "riparare" per il prodotto nella lista "aggiungi/rimuovi programmi". (Questo è in realtà equivale a risposta di leppie, ma è una migliore idea di utilizzare le proprietà di Windows Installer, piuttosto che l'hacking al Registro direttamente.)

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

hi wcoenen, mia esigenza non è solo per disabilitare Modifica e ripristina in Aggiungi/Rimuovi programmi, ma anche per rendere il display pulsante Rimuovi come Cambia/Rimuovi Quando clicco su questo pulsante, voglio che il mio setup.exe funzioni. Grazie per la tua risposta BR., tvks – user187023

+0

Questo è tecnicamente vero Le proprietà devono essere impostate su qualcosa Ma per qualche motivo Sono abituato a vedere 1 in questa tabella delle proprietà e nessun altro testo, probabilmente perché questo è il modo in cui InstallShield è stato autore per così tanti anni prima di usare WiX. –

+0

Molto utile, grazie –

5

Come per @Wim Coenen Per disabilitare Rimuovi “Change” e “ Ripristina "i pulsanti in Installazione applicazioni impostano la seguente proprietà.

ARPNOREPAIR e ARPNOMODIFY

Questo è il codice di esempio per la riparazione e disabilitare l'opzione di aggiornamento.

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

Suggerimento per la prima parte della domanda:

"Voglio che questi due pulsanti per essere uno come 'Cambia/riparazione' come in altre applicazioni"

Sono con Windows 7 e l'unica cosa vicina a questa opzione sono le applicazioni con "Disinstalla/Cambia" unite insieme.

Per eseguire un pulsante ONE (esistente in Wix 3.7) 'Disinstalla/Cambia' anziché 'Disinstalla' e 'Cambia' separatamente, il tag del fascio deve essere regolato come di seguito.

<Bundle ... 
     DisableModify="button"> 
Problemi correlati