Вопрос

У меня есть элемент управления activex на C ++, для которого мне нужно создать установщик.Ему нужно удалить библиотеку dll и создать некоторые разделы реестра.

У меня есть около 6 файлов .RGS, которые я создал для самостоятельной регистрации через regsvr32, которые работают.

Чтобы выполнить установку, я вручную переношу скрипты RGS в графический интерфейс реестра установщика Windows Visual Studio 2008.Я чувствую, что невозможно указать точный порт (напримерКлючевые слова RGS, такие как ForceRemove).

Разве нет способа сгенерировать эти файлы из файла IDL?Я делаю это неправильно?

Это было полезно?

Решение

SelfReg - не лучшая практика при установке MSI, потому что она неработоспособна и хрупка.Возможности установщиков Visual Studio 2008 ограничены, но вы должны иметь возможность установить для свойства Register значение vsdrfCOM вместо vsdrfCOMSelfReg.Это приведет к тому, что метаданные COM будут собраны из вашей библиотеки DLL и созданы изначально в MSI.

После того, как вы соберете свой MSI, вы должны заметить, что таблица SelfReg пуста, а в таблице реестра для ваших COM-данных имеется множество автоматически созданных строк.

Примечание:VDPROJ немного неумело извлекает этот COM, поэтому он может не сработать.Возможно, вам придется рассмотреть более мощный инструмент, такой как InstallShield или Windows Installer XML.

Другие советы

Ты делаешь это неправильно. Файлы .rgs есть, чтобы компонент мог установить себя. Любой установщик поддерживает, позволяющую установку компонента. Например, проект Visual Studio Setup, установите свойство регистрации.

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top