На самом деле, COM можно зарегистрировать для каждого пользователя или для каждого компьютера, поскольку HKEY_CLASSES_ROOT - это представление, полученное как из HKEY_CURRENT_USER \ Software \ Classes, так и из HKEY_LOCAL_MACHINE \ Software \ Classes.Если вы запустите regasm /regfile:foo.dll, вы можете сгенерировать regfile, а затем изменить все ссылки в именах ключей, чтобы сделать его локальным для текущего пользователя.
В генерируемом файле .reg всеРег ключ добавляется в HKEY_CLASSES_ROOT.Вам нужно заменить их на «HKEY_CURRENT_USER \ Software \ Classes».
Также, если вам нужна регистрация COM для работы с 32-битными приложениями и вы используете x64, то для добавления в HKEY_CLASSES_ROOT \ CLSID вы 'Вам нужно будет вставить "\ Wow6432Node" перед токеном CLSID, например.
Чтобы было ясно, дополнения к "HKEY_CLASSES_ROOT \ CLSID" становятся "HKEY_CURRENT_USER \ Software \ Classes \ Wow6432Node \ CLSID".Чтобы он работал на x86, вам нужно внести это изменение только для записей CLSID.
Кроме того, в некоторых ситуациях вы можете рассмотреть возможность использования регистрации Free COM Interop путем создания файла манифеста для EXE-файла, который используетCOM-сервер, чтобы сделать ProgID / ClassID доступными для EXE без фактической записи регистрационной информации в реестр.