Установщик Windows для COM-компонента - PullRequest
2 голосов
/ 25 августа 2010

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

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

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

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

Ответы [ 2 ]

1 голос
/ 26 августа 2010

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

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

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

1 голос
/ 25 августа 2010

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

...