Удалить экран настроек восстановления из установщика MSI - PullRequest
5 голосов
/ 04 мая 2009

Я создал стандартный установщик MSI для P & D моего приложения, в котором используются следующие компоненты:

  • Служба WCF, размещенная как служба Windows.
  • Приложение с графическим интерфейсом, которое связывается с этой службой.
  • Расширение оболочки Dll.

Установщик работает очень хорошо и без проблем. Проблема возникает, когда пользователь снова пытается установить приложение поверх существующего приложения с помощью установщика MSI. В настоящее время у него есть экран с двумя вариантами «Ремонт» и «Удалить». Обе эти опции не работают и портят установленное приложение.

Я хочу пропустить этот экран и показать что-то вроде MessageBox, говоря, что приложение уже установлено. Поскольку это не обязательно для меня, чтобы предоставить вариант ремонта для пользователя. И, как минимум, я должен быть в состоянии скрыть или как-то не предоставить опцию Восстановить.

Любая помощь или предложения для меня? Итак, я пробовал так много вещей, как использование ORCA, добавление свойства NotRepair и т. Д. Но ни одна из них не сработала.

Ответы [ 6 ]

5 голосов
/ 04 мая 2009

Посмотрите Руководство по установке Windows в MSDN для этих двух свойств:

4 голосов
/ 24 июня 2011

Принятый ответ оставляет некоторые вещи для кого-то без большого опыта установки.

Для этого вам нужно отредактировать .MSI после того, как он будет создан при установке .NET. Простой поддерживаемый Microsoft способ сделать это - Orca . Вы можете установить Orca из .NET Framework SDK . Если вы считаете, что у вас уже есть SDK, но у вас нет Orca в меню «Пуск», найдите на своем компьютере файл «Orca.exe» или «Orca.msi».

Как только Orca установлена, просто запустите ее. Откройте файл MSI, используя Orca UI. Слева вы увидите список «Таблиц». Выберите таблицу Свойство . На правой панели щелкните правой кнопкой мыши и добавьте. Добавьте узел с именем ARPNOREPAIR. Убедитесь, что вы установили значение в пустую строку "". Также добавьте узел для ARPNOMODIFY, если вы не хотите, чтобы опция изменения отображалась в окнах вашей программы.

1 голос
/ 09 мая 2017

С сегодняшнего дня это намного проще, если вы перейдете через installshield, чтобы отредактировать файл ISM. Чтобы отключить кнопки Change и Repair на экране «Установка и удаление программ», установите следующие параметры: Yes на вкладке Installation Designer> Installation Information узел на панели навигации> узел General Information на панели навигации> Add or Remove Programs секция в деталях

  1. Disable Change Button
  2. Disable Repair Button

enter image description here

Чтобы справиться со второй проблемой, вы можете просто изменить встроенный диалоговый экран MaintenanceWelcome installshield.

  1. Измените текст метки приветственного сообщения на какое-нибудь сообщение об ошибке, например, «Другая версия этого продукта уже установлена. Установка не может быть продолжена.»
  2. В поведении по нажатию кнопки Next просто добавьте EndDialog событие. Установите его условие выполнения на 1, чтобы оно выполнялось всегда. Установите Value на Exit
  3. Измените текст кнопки Next на «Готово».
  4. Отключите или скройте кнопку Cancel, если хотите.

Все готово!

1 голос
/ 11 июня 2014

Я согласен с Хенриком, но в моем случае последний шаг

Найдите и удалите запись с помощью Dialog_ 'MaintenanceForm' и элемента управления 'RepairRadioGroup'.

вызывает ошибку 2814.
Поэтому я предлагаю следующее: сделать RepairRadioGroup невидимым. Для этого просто установите его, s Атрибут до 0

UPDATE атрибуты SET SET = 0 WHERE Control = 'RepairRadioGroup'

1 голос
/ 19 марта 2013

Понимаю, что у этой проблемы уже несколько лет, но я полагаю, что такие люди, как я, все еще сталкиваются с этой проблемой. Сумет упоминает в комментарии к принятому решению, что пользователь все еще может получить доступ к экрану с обоими показанными параметрами «Восстановить» и «Удалить».

Похоже, на самом деле существует три различных способа доступа пользователя к программе установки приложения.

One: Как уже было сказано, ARPNOMODIFY и ARPNOREPAIR исправляют проблему только в программе Add Remove Program. Это можно сделать с помощью "Orca.exe".

Два: Щелкнув правой кнопкой мыши установщик для MSI. К сожалению, это единственное место, где, кажется, нет способа избежать обеих опций без внесения корректировок в масштабах всего компьютера для всех файлов MSI.

Три: При двойном щелчке по установщику, если он уже установлен, появляется экран с переключателями «Ремонт» и «Удалить».

Ниже вы найдете эту аккуратную адаптацию для решения третьей точки доступа, несколько переписанную здесь: http://us.generation -nt.com / there-way-disable-remove-repair-option-through-orca-project- свойства-помощь-49010162.html . Графически удаляет выбор разрешения на ремонт. Я благодарю Пола Бруна за это.

  1. Откройте MSI-файл с помощью Orca.exe.
  2. Перейти в таблицу «Недвижимость».
  3. Добавьте ключ 'ARPNOMODIFY' со значением 1.
  4. Добавьте ключ 'ARPNOREPAIR' со значением 1.
  5. Измените значение свойства 'MaintenanceForm_Action' с Repair на Remove.
  6. Перейти в таблицу «Управление».
  7. Найдите запись с помощью Dialog_ 'MaintenanceForm' и элемента управления 'BodyText'.
  8. Измените свойство «Текст» на следующее: {\VSI_MS_Sans_Serif13.0_0_0}Select "Finish" to remove [ProductName]
  9. Найдите запись с помощью Dialog_ 'MaintenanceForm' и элемента управления 'RepairRadioGroup'.
  10. Измените свойство Control_Next с CancelButton на FinishButton.
  11. Найдите и удалите запись с помощью Dialog_ 'MaintenanceForm' и элемента управления 'RepairRadioGroup'.

С выполнением вышеуказанных шагов может быть связана автоматизация процесса адаптации msi с преобразованием, полученным при выполнении шагов только один раз. Более подробную информацию о том, как это сделать, можно найти здесь: Использовать Orca для редактирования MSI из командной строки?

0 голосов
/ 25 ноября 2009

Я завернул setup.exe и MSI в EXE-файл. Который по нажатию извлекает файлы и запускает Setup.exe. В этом exe, я добавил код, чтобы проверить, установлено ли приложение на компьютере или нет. Если он установлен, я запрашиваю пользователя и завершаю работу. Таким образом, MSI никогда не запускается, если приложение уже установлено, поэтому экран восстановления и удаления никогда не появляется. Что касается кнопки «Изменить» на экране «Добавить / Удалить», я использовал решение, предоставленное «CheGueVerra». Спасибо тебе.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...