Так что мой вопрос, учитывая каталог
есть ли инструмент, который будет рекурсивно
найти все .vcxproj и .csproj
файлы и создать файл решения
с зависимостями?
номер
То, что вы просите, очень разумно; Ваш подход к проблеме довольно рациональный. К сожалению, инструменты не поспевают за вами. (У нас была такая же проблема.)
Вам придется написать это самостоятельно или настроить инструменты. Это то, что мы сделали. Успешные подходы, которые я видел, включают:
Генерация *.vcproj/*.sln
из
«определения эталонного проекта»,
используя такие инструменты, как CMake
, QMake
, Scons
или
Gyp
. Наша основная система в настоящее время сидит
на Scons
, с нашим собственным Python
код для навигации по этим зависимостям,
генерировать решения на основе проектов
(паутинные зависимости). От
по умолчанию мы генерируем «завершено»
решение для каждого проекта (в том числе
все необходимые вспомогательные проекты),
плюс «Мастер всех проектов»
решение. Это работает очень хорошо. Но,
это была обычная работа, которая потребовала усилий,
и мы расширили Scons
несколько
опишите наши проекты (но мы просто
положиться на Scons
поколение
*.sln
и *.vcproj
).
Напишите пользовательский инструмент, чтобы "найти" эти зависимости
парсинг всех файлов *.vcproj
в
ваше рабочее пространство. Это работа, но можно сделать. Эти файлы могут быть «хитрыми» для навигации, но вам может пригодиться «достаточно хорошее» решение, которое использует GUID в качестве хеш-ключей для генерации этих зависимостей.
Я полностью согласен с вами: этот тип вещей (зависимости от проектов) очень сложно поддерживать вручную, когда вы выходите за рамки «простого» (например, многие десятки проектов, да, у нас также есть сотни).
Извините. MSVS - довольно хорошая IDE (предназначенная для итеративной разработки) и ужасная система управления конфигурацией сборки, не предназначенная для того, о чем мы говорим.
Поскольку я забочусь о вашем здравомыслии и вашей вечной душе, пожалуйста, ПОЖАЛУЙСТА, не пытайтесь написать ваше собственное решение в MSBuild.