Удалите кнопки «Изменить» и «Восстановить» в «Установка и удаление программ» - PullRequest
22 голосов
/ 16 ноября 2009

Я создал установщик Wix и упаковал его в программу начальной загрузки.

Когда я запускаю программу начальной загрузки, она создает следующие записи в реестре:

альтернативный текст 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>

Ответы [ 4 ]

43 голосов
/ 16 ноября 2009

Вы можете установить свойства ARPNOMODIFY и ARPNOREPAIR в wix, что отключит параметры «изменение» и «восстановление» для вашего продукта в списке «Установка и удаление программ». , (На самом деле это эквивалентно ответу Леппи, но лучше использовать свойства установщика Windows, а не взламывать реестр напрямую).

<Property Id="ARPNOREPAIR" Value="yes" Secure="yes" /> 
<Property Id="ARPNOMODIFY" Value="yes" Secure="yes" />
6 голосов
/ 13 июля 2012

Согласно @Wim Coenen Чтобы отключить кнопки «Изменить» и «Восстановить» в окне «Установка и удаление программ», установите следующее свойство.

ARPNOREPAIR и ARPNOMODIFY

Это пример кода для отключения опции восстановления и обновления.

<Property Id="ARPNOREPAIR" Value="yes" Secure="yes" /> 
<Property Id="ARPNOMODIFY" Value="yes" Secure="yes" />
5 голосов
/ 26 ноября 2013

Предложение по первой части вопроса:

«Я хочу, чтобы эти две кнопки были такими же, как« Изменить / Восстановить », как в других приложениях»

Я работаю под управлением Windows 7, и единственное, что близко к этому параметру, - это то, что некоторые приложения объединяют «Удалить / Изменить».

Чтобы выполнить ОДНУ кнопку (существующую в Wix 3.7) «Удалить / Изменить» вместо «Удалить» и «Изменить» отдельно, тег пакета должен быть настроен, как показано ниже.

<Bundle ...
        DisableModify="button">
0 голосов
/ 16 ноября 2009

Вот несколько примеров ключей реестра от NSIS. Должен поставить вас в правильном направлении.

HKLM\Software\Microsoft\Windows\CurrentVersion\Uninstall\Example2 "NoModify" 1
HKLM\Software\Microsoft\Windows\CurrentVersion\Uninstall\Example2 "NoRepair" 1
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...