Наш продукт содержит встроенный COM-сервер VC ++ ATL с двумя открытыми COM-классами - ClassA и ClassB. Этот COM-сервер добавляется в установочный пакет Install Shield 2008, и для компонента устанавливается свойство «COM Extract at Build».
Компонент ClassA и ClassB предоставляются компоненту точно одинаковым образом - для каждого из них есть файл .rgs, оба файла .rgs компилируются в ресурсы компонента, и для них вызывается CAtlModule :: UpdateRegistryFromResourceS (). *
Однако, когда мы запускаем regsvr32 на COM-сервере, оба класса правильно отображаются в реестре, но когда мы запускаем установку пакета, только один из них предоставляется Install Shield.
Как Install Shield обнаруживает, какие изменения в реестре следует внести? Что мы должны проверить, чтобы определить источник проблемы?