Visual Studio: автоматическая регистрация COM с зависимыми DLL вне директорий Debug / Release - PullRequest
3 голосов
/ 02 февраля 2012

Я написал несколько неуправляемых COM-библиотек C ++, которые полагаются на собственные библиотеки C ++, отсутствующие в системном пути.Когда я собираю связанные проекты без копирования DLL в каталоги Debug / Release, я получаю печально известную ошибку компилятора PRJ0050.

Очевидно, я мог бы скопировать необходимые библиотеки DLL по всему решению, но я бы хотел этого избежать.Я знаю, что мог бы установить для свойств проекта Linker -> «Register Output» значение No, а затем запустить regsvr32 непосредственно во время шага после сборки.

У меня вопрос, есть ли лучший способ сделать это.Есть ли способ использовать автоматическую опцию «Register Output» с настраиваемым путем, управляемым на уровне проекта?Чего мне здесь не хватает?

Редактировать: Изначально я думал, что «Зарегистрировать вывод» сотворил какую-то магию, например, отмену регистрации на чистой, но это не так.Кажется, единственное, что нужно сделать, - это выбрать правильный способ регистрации различных типов проектов.

1 Ответ

0 голосов
/ 03 февраля 2012

Я не уверен, что вы спрашиваете - но есть шаги пост-сборки, которые вы можете сделать.Например, если это сторонние библиотеки / библиотеки DLL, вы можете разместить их в известном относительном пути или в каталоге с именем переменной среды.

Это не необычный сценарий из того, что я могу рассказать о вашемситуация.

Можете ли вы добавить DLL как часть проекта (где бы он ни находился) и в качестве шага сборки для этого выполните регистрацию.Или вы можете сделать шаг сборки для этого, скопировать и зарегистрировать файл

Опять же - я не совсем уверен, что вы спрашиваете, и почему ваш второй абзац не подходит для вас, если он работает

...