Я относительно новичок в WiX. Это отличный инструмент, но мне еще нужно некоторое время , чтобы узнать его лучше. Я столкнулся с проблемой регистрации и отмены регистрации компонента COM . Я создал установщиков для двух приложений, позвонил им A и B. Оба используют один и тот же COM-компонент. Я использовал тепловой инструмент, как рекомендовал . При установке A или B компонент регистрируется без проблем .WIX: COM-регистрация при удалении одной из двух программ
Но когда я устанавливаю A и B, а затем удаляю A (с добавлением/удалением программ), класс COM становится незарегистрированным, и B больше не может его использовать. Есть ли чистое решение , чтобы предотвратить это? Я хотел бы отменить регистрацию COM , когда BOTH A и B будут удалены.
Любая помощь будет оценена,
С наилучшими пожеланиями, madbadger
EDIT: Спасибо за ваши ответы. Я устанавливаю идентификатор GUID в одно и то же значение в обоих установщиках, и теперь ключи реестра удаляются должным образом, то есть когда последняя программа удаляется из системы.
Hovewer, проблема сохраняется по одной причине. Я проверил реестр под HKEY_CLASSES_ROOT/CLSID/[соответствующий COM GUID]. Вот что происходит:
- Я устанавливаю A и путь к COM установлен в [путь к A/component.dll]
- Я устанавливаю B, и путь к COM установлен в [путь к B/component.dll ]
- Я удаляю B и путь к COM остается [путь к B/component.dll]
- Теперь A не может получить доступ к COM-компоненту, поскольку он зарегистрирован, потому что [путь к B/component.dll] не существует больше
Теперь я предполагаю, что COM-компонент должен быть включен в один каталог для обоих приложений. Установщик Windows не может вернуться к старому пути, или это что-то мне не хватает?
Должен ли я помещать компонент COM в одно место для обоих установщиков? Является ли папка system32 хорошим местом для нее? – madbadger
Да, вы должны поставить его в том же месте.(Установщик Windows идентифицирует как GUID, так и путь к файлу/реестру). System32 НЕ является хорошим местом. Я бы предложил где-то под общей папкой файлов (обычно 'Program Files \ Common Files \ YourCompanyName'). Вы должны ввести это в Wix следующим образом: 'Directory =" [CommonFilesFolder] \ YourCompanyName "' –
Большое спасибо за это, так хорошо! – madbadger