2012-03-06 3 views
2

У меня есть сборка .NET и использование regasm.exe для регистрации для COM. Tlb используется пользователями для написания кода в VBA в Excel.Является ли это возможным подходом к регистрации типов .NET для COM

Я сделал regasm/regfile, и я вижу, что все записи реестра падают в 'HKEY_CLASSES_ROOT \'. У меня есть ограничение администратора (к сожалению), чтобы запустить regasm на всех машинах пользователя, так как для этого требуется доступ администратора для записи разделов реестра в * HKEY_CLASSES_ROOT *.

Мой вопрос: Если я изменю это, чтобы написать «HKEY_LOCAL_MACHINE» или «HKEY_CURRENT_USER», будет ли COM-взаимодействие работать и сможет ли Excel найти мои типы?

Таким образом, я думаю, что могу договориться о гораздо меньших предпочтениях для моих пользователей, чтобы они могли запускать этот новый reg-файл, а не запускать regasm.

Благодаря Mani

+0

Да, COM поиск HKCU первым. Почему ты просто не попробовал? –

ответ

0

К сожалению, это не так просто, потому что зависит от настроек пользователя, взять бабло на: http://blogs.msdn.com/b/cjacks/archive/2008/06/06/per-user-com-registrations-and-elevated-processes-with-uac-on-windows-vista-sp1.aspx

+0

Это интересно. Но в моем случае я использую Win XP с SP3. Считаете ли вы, что это все еще применимо? –

+0

Да и нет, в Windows XP он работает без проблем, вы должны помнить, что «обратите внимание» только на более новые версии ОС (по крайней мере, предупреждайте своих пользователей или службу технической поддержки). –

+1

Как указывается в статье, когда UAC включен и учетная запись работает повышенной, регистрация каждого пользователя игнорируется. Тем не менее, это контекст, в котором регистрация каждой машины будет успешной. – Govert