DLL не найдены в проекте .NET - PullRequest
1 голос
/ 20 января 2010

У меня есть проект, который использует несколько сторонних библиотек DLL, и я работаю над проектом установки для развертывания. Программа работает нормально при запуске (отладке) из Visual Studio 2005, но не при «установке».

DLL правильно копируются в папку приложения. Насколько я понимаю, DLL не регистрируются установщиком. «Не удалось получить фабрику класса COM для компонента с CLSID { GUID } из-за следующей ошибки: 80040154»

В проекте установки каждая сборка DLL имеет свойство «Register», установленное на «vsdraCOM», которое, как я думал, должно было инициировать регистрацию.

Редактировать: Похоже, что они все сборки .NET, как и мое приложение, и регистрация должна не быть проблемой. Название изменено, чтобы отразить это.

Кажется, это должно быть довольно просто, но я не знаю Что мне делать?

Ответы [ 3 ]

0 голосов
/ 20 января 2010

Если это обычные COM-объекты (не сборки .NET), которые регистрируются самостоятельно (т.е. вы можете зарегистрировать их с помощью regsvr32), тогда вам нужно vsdraCOMSelfReg, а не vsdraCOM.vsdraCOM используется для регистрации сборок .NET для взаимодействия COM.

Да, это совсем не интуитивно.

0 голосов
/ 20 января 2010

Используемые библиотеки DLL поставлялись в пакете SDK с документацией, примерами кода и т. Д. От поставщика в установщике. У меня были все свободные файлы, которые были перенесены при переходе на новый компьютер, но я не понял, что на самом деле я не запустил установщик на новом компьютере.

При установке SDK необходимо выполнить любую регистрацию - мое приложение теперь работает правильно. Я могу установить на целевой компьютер, запустив оба установщика, что приемлемо.

0 голосов
/ 20 января 2010

Используйте Dependency Walker (http://dependencywalker.com/), чтобы проверить, какие еще библиотеки DLL могут пытаться загрузить.

Затем попробуйте найти свой GUID в реестре в HKCR \ CLSID, где InprocServer32 должен содержать путьв успешно зарегистрированную DLL.

...