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