Ошибка: сборка c:\MyAssembly.dll не может быть преобразована в библиотеку типов

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

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

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

So:

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

person Justin    schedule 23.08.2010    source источник
comment
1. Есть ли в проекте какие-либо внешние зависимости, которые неправильно настроены на вашем компьютере? 2. Как выглядит OtherType?   -  person jgauffin    schedule 23.08.2010
comment
@jgauffin, боюсь, вам нужно быть более конкретным - 1. Я думаю, что да, потому что он сломан, 2. Это интерфейс, кроме этого, я не знаю никаких примечательных функций.   -  person Justin    schedule 23.08.2010


Ответы (4)


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

person Rommel Manalo    schedule 08.03.2012

В моем случае у меня была открытая dll com (я изменил 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 в сборке.cs, который вы используете в своем классе. Я использовал один и тот же GUID как в объявлении класса, так и в сборке, и это также вызывает ту же ошибку.

person Shawn    schedule 01.06.2012
comment
Спасибо Спасибо спасибо! Эта последняя часть о повторном использовании руководства также решила мои проблемы. :) - person Johny Skovdal; 19.06.2014

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

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

person hofingerandi    schedule 29.07.2011

У меня была точно такая же проблема. Это было исправлено волшебным образом, изменив целевую платформу с x86 на любой процессор.

person Ashi    schedule 19.05.2020