Настройка варианта восстановления в MSI - PullRequest
1 голос
/ 30 июля 2009

У меня есть проект установки Visual Studio, который очень прост, за исключением одной модификации. У меня есть две разные библиотеки, которые я хотел бы установить на основе выбора пользователя. Я добавил экран флажок и условия для файлов. Они могут установить либо компонент, либо оба компонента. Это все отлично работает.

Теперь по моему требованию. Допустим, пользователь установил MSI и выбрал только один компонент. Теперь им нужно установить второй компонент из того же MSI. Если они снова запустят MSI, я получу возможность восстановить или удалить. Ремонт будет исправлять только тот компонент, который был установлен изначально. Как я могу дать им возможность установить другие компоненты, снова показывая экран флажков?

Если эта функция недоступна в проекте установки VS, есть ли что-то еще где? WiX возможно?

Ответы [ 2 ]

1 голос
/ 18 января 2012

Вам нужно использовать бесплатные редакторы MSI, такие как ORCA или SuperORCA. Microsoft использует для предоставления инструмента ORCA в свой пакет обновления. Не уверен, что они продолжают так. Инструмент SuperORCA вы можете найти по адресу http://www.pantaray.com/msi_super_orca.html. Теперь, когда у меня была похожая задача, добиться следующего было моим подходом. Я использовал SuperOrca, чтобы открыть мой файл MSI. 1] В диалоговом окне восстановления / удаления MSI добавьте еще одну радиокнопку для «Изменить» - В SuperOrca -> Под таблицей RadioButton -> Добавить запись для радиокнопки Изменить

2] Переименовать текст BackButton в «Переустановить» из исходного «Назад» -> В SuperOrca -> в разделе «Таблица управления» -> изменить свойство «Текст», чтобы переименовать Назад в «Переустановить»

3] При выборе переключателя «Восстановить / Удалить» включите кнопку «Готово» и отключите кнопку «Переустановить». При выборе радиокнопки «Изменить» включите кнопку «Переустановить» и отключите кнопку «Готово» - в SuperOrca -> под таблицей ControlCondition -> добавьте записи для включения / выключения кнопок «Переустановить» и «Готово» для каждой комбинации для экрана восстановления / удаления (в моем имя диалогового окна case "MaintananceForm")

4] Теперь из инструментов SuperOrca в таблице ControlEvent выясняется имя conrol для BackButton, в моем случае это «PreviousButton». Теперь измените его записи Event, Argument & Condition из таблицы. И значения этих свойств должны быть одинаковыми для свойств кнопки «Далее» на экране приветствия MSI-файла, который перенаправляет пользователя для отображения параметров установки.

Примечание: Это нормально работает для меня. Но когда вы снова выбираете параметры установки и нажимаете Далее, это как-то не обязательно для установки выбранного параметра. Вместо этого он восстанавливает MSI. Я попытался удалить записи из папки Windows \ Installer, чтобы MSI не выбрал установленную версию, но безуспешно. Если у кого-нибудь есть ответ о том, как принудительно переустановить MSI с помощью мастера установки MSI, сообщите мне.

1 голос
/ 20 августа 2009

Я не думаю, что проекты VS Setup поддерживают это. Wix или MSI, созданные из других инструментов, таких как Installshield, могут поддерживать это. Обычный способ справиться с этим - создать отдельные элементы и назначить разные компоненты для каждой функции. Затем, если MSI построен с использованием WiX или какого-либо другого инструмента, в разделе «Добавить / удалить» будет кнопка / опция «Изменить», с помощью которой вы можете получить возможность восстановить, изменить или удалить. Изменить, затем позволяет изменить выбор функций без переустановки.

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