| Предыдущий | Следующий |
| CO_E_RELOAD_DLL | CO_E_ATTEMPT_TO_CREATE_OUTSIDE_CLIENT_CONTEXT |
CO_E_MSI_ERROR
Контракт операции
При CO_E_MSI_ERROR нарушено конкретное условие: Произошла ошибка установщика Windows Installer. Не подменяйте его последующей ошибкой приложения: сначала локализуйте платформа и развёртывание COM.
Что сохранить до retry
- запишите OS/build, process architecture, SxS activation context, MSI product/component identity и CLR availability. Для условия «Произошла ошибка установщика Windows Installer» это позволяет восстановить исходный объект и не спутать его с последующим состоянием.
- снимите в трассировку технические маркеры
CoInitializeEx,HRESULT,MSIс теми значениями, которые были видны до очистки/rollback; они привязывают «Произошла ошибка установщика Windows Installer» к реальному вызову. - снимите в трассировку момент первого результата и один исправный запуск, сохранив одинаковыми входные данные; различие должно появиться именно на стадии платформа и развёртывание COM.
Проверка гипотезы
проверьте одной переменной сравнить установленный компонент и activation context с требованиями зарегистрированного COM-класса. Изменяйте только предпосылку, связанную с «Произошла ошибка установщика Windows Installer», а регистрацию, identity, входной объект и окружение по возможности оставляйте прежними.
не маскировать platform mismatch переустановкой без проверки версии и архитектуры; для результата «Произошла ошибка установщика Windows Installer» широкая переустановка, очистка каталога или ослабление безопасности не считается доказательством причины.
Для соседних результатов REGDB_E_CLASSNOTREG сравнивайте первую различающуюся операцию. Исправление подтверждено только тогда, когда исходная граница проходит при прежних входах и следующий ожидаемый шаг получает корректное состояние.
Технические ссылки
- Microsoft: CoInitializeEx
- Microsoft: COM security defaults
- Microsoft: common HRESULT values
- Microsoft: HRESULT values
- Портал COM для Windows
- Microsoft: COM error codes
Нужно найти другой код? Найти другой код состояния или ошибки.
