Проблема с регистрацией для взаимодействия COM - Ошибка: элемент не найден - PullRequest
0 голосов
/ 11 февраля 2020

Использование Visual Studio для разработки DLL, которая является плагином для приложения. Надстройка должна быть зарегистрирована для работы. Каким-то образом что-то испортилось, и я не знаю, что это было. На этом этапе DLL будет компилироваться, если у меня не проверено «Build-> Register for COM interop». Если флажок установлен, я получаю сообщение об ошибке:

Сборка "C: \ Users \ erics \ source \ repos \ XXXX Tooling Utilities \ XXXX Tooling Utilities \ bin \ Debug \ XXXX Tooling Utilities .dll "не удалось преобразовать в библиотеку типов. Экспортер библиотеки типов обнаружил ошибку при обработке 'XXXXUtilities.AddIn, XXXX Tooling Utilities'. Ошибка: элемент не найден. XXXX Tooling Utilities

Я работаю в Visual Studio с правами администратора, как указывает на это сообщение .

Я попытался зарегистрировать эту dll вручную с помощью RegAsm.exe в Режим администратора, но схожий результат:

Типы зарегистрированы успешно RegAsm: ошибка RA0000: При экспорте библиотеки типов обнаружена ошибка при обработке «XXXXUtilities.AddIn, XXXX Tooling Utilities». Ошибка: элемент не найден.

Я также скачал Dependency Walker и посмотрел на dll с ним. Мне кажется, что обходчик зависимостей находит все зависимости в порядке.

Любая помощь будет признательна.

1 Ответ

0 голосов
/ 11 февраля 2020

Похоже, что отсутствовал dll:

C: \ Windows \ SysWOW64 \ oleaut32.dll

Я нашел это, создав свой проект из почесать снова. На каждом этапе я проверял приложение. У меня возникла проблема, когда я установил зависимость из пакета NuGet. Установка NuGet не сообщила ничего плохого. На этот раз сообщение об ошибке регистрации взаимодействия было намного яснее, сообщая мне, что проблема была в одной из библиотек DLL, которые я только что установил с помощью NuGet. Я открыл dll с проблемой, используя Dependency Walker и сказал, что не может найти вышеуказанный файл.

Чтобы решить эту проблему, я начал с восстановления Visual Studio, и, казалось, восстановить длл. К счастью это исправило это. Если это не так, я собирался перейти к ремонту Windows 10.

...