Включение проекта VB в проект VC ++ - PullRequest
0 голосов
/ 10 января 2009

Мне нужна помощь с проблемой зависимости. В двух словах, я включил проект makefile в большую рабочую область VC ++, но этот подпроект всегда перестраивается, даже когда в этом нет необходимости.

Подробности

Я унаследовал большой проект, который состоит из нескольких различных модулей, включая (основной) исполняемый файл Visual C ++ 6.0 и меньшую DLL-библиотеку Visual Basic 6.0.

Сегодня он создается вручную, запуская каждую IDE и генерируя каждый компонент из его собственной среды. Я хотел бы превратить это в сборку в один клик из IDE VC ++. (Конечная цель - экспортировать make-файл, автоматизировать весь процесс и создать ночные сборки.)

Для этого я добавил проект "Makefile" в рабочую область VC ++. Makefile создает VB DLL, вызывая VB-компилятор из командной строки.

Проблема в том, что проект VB всегда перестраивается, добавляя несколько минут к процессу сборки. Я полагаю, что я мог бы избежать этого, добавив все исходные файлы VB в качестве зависимостей, но это, вероятно, обернулось бы проблемой обслуживания, поскольку разработчикам приходилось бы обновлять рабочее пространство VC ++ при каждом изменении компонента VB.

Есть ли способ сделать процесс сборки более избирательным, поэтому VB запускается только тогда, когда DLL требуется перестроить , если не считать добавления каждого исходного файла в проект VC ++ в качестве зависимости?

Спасибо за ваши мысли!

1 Ответ

1 голос
/ 10 января 2009

Вы можете сделать сканирование зависимостей самостоятельно. Запускать сборку VB только в том случае, если любой исходный файл VB новее, чем вывод сборки VB-сборки (где вы можете сканировать рекурсивно с использованием подстановочных знаков, то есть без явной настройки). Возможно, вам придется дополнительно позаботиться о ссылках, которые использует проект VB.

Это, конечно, требует некоторой ручной записи make-файла. Поскольку VB6, по-видимому, не поддерживает саму проверку зависимостей, я не могу придумать ни одного решения, основанного исключительно на IDE (которое не требует упомянутой вами двойной бухгалтерии).

Поскольку вы только начинаете внедрять ночные сборки для проекта VB, это, похоже, указывает на то, что этот проект может находиться в стадии разработки / обслуживания в течение более длительного времени. Это более длительное время само по себе может указывать на перенос проекта VB в VB.NET, что значительно улучшает процесс сборки для проектов VB.

...