Порядок сборки проекта Visual Studio 2005 без использования зависимостей проекта - PullRequest
2 голосов
/ 13 ноября 2009

Краткая версия моего вопроса: как изменить порядок сборки проектов в моем решении, не заставляя один проект зависеть от другого?

В моем решении у меня есть 2 проекта:

1.) Исполняемый файл, написанный на C
2.) Статическая библиотека, содержащая модульные тесты с использованием инфраструктуры CUTest.

У меня есть 4 конфигурации сборки:

1.) Debug - я хочу только exe в режиме отладки. Статический проект lib не выбран, поэтому он не будет собираться.
2.) Release - хочу только exe в режиме релиза. Статический проект lib не выбран, поэтому он не будет собираться.
3.) Отладка с помощью модульных тестов - хотите, чтобы статическая библиотека была собрана, а затем исполняемая, поскольку в этом случае она зависит от библиотеки.
4.) Выпуск с модульными тестами - То же самое # 3, только в выпуске.

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

Теперь вот руб. До сих пор я нашел единственный способ изменить порядок сборки и убедиться, что статическая библиотека создается до того, как исполняемый файл - это щелкнуть правой кнопкой мыши решение и выбрать порядок сборки. В этом диалоговом окне говорится, что я должен использовать вкладку зависимостей, чтобы изменить порядок сборки. Это имеет смысл. Однако, если я отмечаю исполняемый файл как зависящий от статической библиотеки, он автоматически добавляет статическую библиотеку как зависимость компоновщика от исполняемого файла. Это хорошо для конфигов сборки юнит-теста. Однако в конфигурациях сборки, не относящихся к модульному тесту, он пытается связать статическую библиотеку, которая, если я выполнил очистку перед сборкой, была удалена и не может быть связана, потому что я не собираю ее в тех конфиги (и я не хочу, чтобы это было связано в этих случаях).

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

Ответы [ 3 ]

3 голосов
/ 13 ноября 2009

Вы можете отключить автоматическое включение библиотечных зависимостей.

На странице свойств вашего exe:

Компоновщик -> Общие -> Зависимости библиотеки ссылок -> Нет

Это позволяет вам указать зависимости проекта и, таким образом, порядок сборки без привязки статической библиотеки.

1 голос
/ 13 ноября 2009

Я бы посмотрел на NAnt. Может быть возможно создать скрипт для решения вашей проблемы.

http://nant.sourceforge.net

0 голосов
/ 13 ноября 2009

«В зависимости от конфигурации» может быть ответом. Это позволит указать, что lib является зависимостью исполняемого файла только для конфигурации, где это имеет смысл.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...