Установщик Windows для COM-компонента
У меня есть элемент управления C++ ActiveX, для которого мне нужно сделать установщик. Нужно сбросить dll и сделать несколько ключей реестра.
У меня есть около 6 файлов.RGS, которые я сделал для самостоятельной регистрации через regsvr32, которые работают.
Чтобы сделать установщик, я вручную портирую сценарии RGS в графический интерфейс установщика Windows Visual Studio 2008. Я чувствую, что невозможно сделать точный порт (например, ключевые слова RGS, такие как ForceRemove).
Нет ли способа сгенерировать эти файлы из файла IDL? Я делаю это неправильно?
2 ответа
SelfReg не является лучшей практикой при установке MSI, потому что он неработоспособен и хрупок. Установщики Visual Studio 2008 ограничены, но вы должны иметь возможность установить для свойства Register значение vsdrfCOM вместо vsdrfCOMSelfReg. Это приведет к тому, что метаданные COM будут собраны из вашей DLL и изначально созданы в MSI.
После того, как вы создадите MSI, вы должны заметить, что таблица SelfReg пуста и что в COM-строке содержатся серьезные автоматически создаваемые строки для ваших данных реестра.
Примечание: VDPROJ - это не очень удачная попытка извлечь этот COM, поэтому он может не работать. Возможно, вам придется рассмотреть более сильный инструмент, такой как InstallShield или Windows Installer XML.
Вы делаете это не правильно. Файлы.rgs существуют для того, чтобы компонент мог установить сам себя. Любой установщик поддерживает установку компонента самостоятельно. Например, в проекте установки Visual Studio установите свойство Register.