CreateObject на .NET-Framework объект COM сбой, если (a) объект COM зарегистрирован в HKCU вместо HKLM, а (b) UAC не вык ⇐ C#

Место общения программистов C#
Anonymous
CreateObject на .NET-Framework объект COM сбой, если (a) объект COM зарегистрирован в HKCU вместо HKLM, а (b) UAC не вык

Сообщение Anonymous »

Да, вы правильно читаете заголовок-это проблема, которая возникает только тогда, когда UAC- off (например, со встроенной учетной записью администратора в системах Windows Server).
Steps:
  • Создать Com-exposed dll с. север 4.8. Этот dll в hkey_current_user (\ software \ classes \ clsid и т. Д. - Вы знаете, обычные местоположения для регистраций COM) вместо HKEY_LOCAL_MACHIN

    Код: Выделить всё

    CreateObject(...)
    ).
ожидаемое поведение: работает.
Фактическое поведение: работает, , если пользователь не является встроенным пользователем администратора на Windows. В этом случае, CreateObject дает следующую ошибку: система не может найти указанный файл. .
Я не нашел эту проблему, задокументированную, за исключением загадочного комментария от Microsoft homployee в потоке Github, намекая на вопросы безопасности в рамках .NET с помощью HKCU COM, о котором не может быть DILS -PRACEWORTIONS/PRIDSIORE. /> Я задокументировал обходные пути, которые я нашел (и их недостатки) в ответе. Тем не менее, мне очень любопытно относиться к основной причине этой проблемы, поэтому не стесняйтесь добавлять свой собственный ответ, если у вас есть больше информации.

Подробнее здесь: https://stackoverflow.com/questions/796 ... bject-is-r

Вернуться в «C#»