Удаление разделов реестра при установке msi с помощью пользовательских действий

#windows-installer #registry #key

#windows-установщик #реестр #Клавиша

Вопрос:

Я пытаюсь удалить некоторые разделы ассоциаций файлов в реестре для нашего предыдущего продукта, чтобы при установке нашего нового продукта с помощью MSI он предотвращал конфликты и открывал правильный продукт.

Моя проблема в том, что когда я пытаюсь добавить .exe с помощью пользовательского действия в процессе установки MSI, он не может получить правильный раздел реестра (вероятно, из соображений безопасности, поскольку сообщение трассировки не получает всю папку subkeys в HKCUSoftwareMicrosoftWindowsCurrentVersionExplorerFileExts ).

Я хотел знать, есть ли какой-либо другой способ удалить ключи из реестра во время MSI установки с помощью пользовательских действий.

Приветствуется любая помощь.Заранее спасибо.

Комментарии:

1. Какой инструмент разработки MSI вы используете?

2. я использую проект развертывания vs 2008 для сборки MSI.

3. У меня нет опыта работы с проектом установки VS. Поможет ли вам эта статья ?

4. Ну, я думаю, это для ключей, которые добавляются вашим текущим проектом, но наша проблема в том, что мы хотим удалить ключи, которые были добавлены нашим предыдущим проектом. Пожалуйста, поправьте меня, если я ошибаюсь, потому что я любитель во всем процессе установки MSI.

5. Да, VS, похоже, поддерживает только этот способ или Registry таблицу. Вы можете использовать JScript для добавления RemoveRegistry таблицы в свой пакет после создания MSI в VS.

Ответ №1:

Не используйте пользовательские действия для выполнения действий, с которыми может справиться установщик Windows.

Вместо использования пользовательских действий для удаления раздела реестра, добавьте строку в таблицу RemoveRegistry и установите для Name столбца значение - .

Шаги для этого различны для каждого средства разработки MSI.

Комментарии:

1. Привет, Алексей, спасибо за ваш быстрый ответ. я прочитал предоставленную вами ссылку, и в ней говорится, что ключ удаляется, только если компонент удален, и мы не удаляем предыдущий продукт с клиентского компьютера, а удаляем ассоциации файлов, чтобы при открытии файлов пользователями он открывался в нашем новом продукте, а не в более старой версии. предыдущая версия — это версия ClickOnce, тогда как новая версия — MSI.

2. Да, вы правы. Вам нужна RemoveRegistry таблица вместо Registry table. Я соответствующим образом отредактировал свой ответ. Тем не менее, из документации по свойствам редактора реестра , похоже, это не поддерживается в проекте установки Visual Studio.