Ошибка: сборка "c: \ MyAssembly.dll" не может быть преобразована в библиотеку типов - PullRequest
4 голосов
/ 23 августа 2010

Я пытаюсь построить свой проект, и я неожиданно начал получать следующую ошибку, когда проект компилируется, и свойство «Регистрация для взаимодействия COM» отмечено.

Сборка "c: \ MyAssembly.dll" не может быть преобразована в библиотеку типов. Экспортер библиотеки типов обнаружил ошибку при обработке «SomeType, MyAssembly». Ошибка: ссылочный тип определен в управляемом компоненте, который импортируется из библиотеки типов, которая не может быть загружена (тип: «OtherType»; компонент: «c: \ OtherAssembly.dll»).

Никто другой в команде не получил эту ошибку, только я! Очевидно, что я сделал что-то странное с моей машиной, однако грубый метод полного удаления / удаления и повторного добавления всего, что я мог придумать, не имел никакого значения, и поэтому я смирился с тем, что действительно понял эту ошибку (что за сопротивление!) 1007 *

Итак:

  • Что на самом деле означает эта ошибка означает
  • Где мне искать следующую / более конкретную диагностическую информацию о том, что не так?

Ответы [ 3 ]

2 голосов
/ 08 марта 2012

У меня была эта проблема.Я просто сделал то же самое, gactutil /u (для удаления) и gacutil /i (для установки) и проблема была решена

2 голосов
/ 01 июня 2012

В моем случае у меня была открытая библиотека DLL (я изменил guid), которая была зарегистрирована с помощью regasm.Мне пришлось использовать следующую команду для отмены регистрации сборки, и затем я смог успешно построить проект.

c:\Program Files (x86)\Microsoft Visual Studio 10.0\VC>regasm /u "C:\some-vs-project\bin\Debug\some-vs-dll.dll"

Также, если вы изменили GUID, вам нужно убедиться, что вы НЕ используете тот же GUIDв файле assembly.cs, который вы используете в своем классе.Я использовал один и тот же GUID как в объявлении класса, так и в сборке, и это также вызывает одну и ту же ошибку.

1 голос
/ 29 июля 2011

В моем случае эта ошибка произошла из-за того, что я вручную зарегистрировал COM-сервер через regsvr32. Когда я позже переместил папку, содержащую dll, я забыл обновить реестр (т.е. отменить регистрацию и перерегистрировать COM-сервер).

Перерегистрация сервера исправила ошибку.

...