У нас есть COM-видимая сборка .NET. Эта сборка регистрируется через «регистрацию COM каждого пользователя» путем добавления записей реестра в HKCU с правами администратора. Сборка успешно зарегистрирована, и COM-объект может быть создан без проблем для пользователей..NET сборка не может быть найдена в отладчике, если только зарегистрирована в HKCU
Однако в отладчике, таком как Visual Studio 2010, если я хочу использовать CoCreateInstance() один из COM-объектов в сборке, возвращается код ошибки 0x80040154, который является «Class not registered». Этого не произошло, когда мы раньше использовали «regasm.exe/codebase * .dll». Я проверил, что regasm.exe добавляет записи реестра в HKLM. Вот мои вопросы:
- Отладчик, Visual Studio 2010 в моем случае, только находит реестр из HKLM вместо поиска в HKCU?
- Это правда, что regasm.exe регистрирует сборку только в HKLM?
Большое спасибо за любые ответы.
Спасибо @ Ханс. Во всех сценариях я единственный пользователь, и у меня есть привилегия администратора. 1) Моя программа была запущена в VS2010, которая имеет привилегию администратора. Я думал, что независимо от того, где зарегистрирована сборка, моя программа должна искать в HKCR, что я проверил ProgID. Вы согласны со мной? – Chloe
Не уверен, с чем вы согласны. Если это только для частного использования, и у вас есть привилегии администратора, то нет смысла использовать HKCU. –
:) Я хотел знать, согласны ли вы со мной, что HKCR - это улей, который моя программа ищет в записи реестра сборщика. – Chloe