Я сейчас пишу небольшое приложение и пытаюсь упорядочить вывод сборки так, чтобы он был немного ближе к готовому продукту. Приложение состоит из ряда различных проектов. Существует базовая библиотека, которая содержит большую часть функциональности, приложение с графическим интерфейсом и приложение командной строки, которые ссылаются на Core Dll, а также на несколько подключаемых модулей, загружаемых во время выполнения и реализующих разные источники данных, все они ссылаются на core.dll , они также могут включать в себя некоторые другие сторонние библиотеки. Существует также ряд периферийных файлов, таких как readme. И, наконец, core.dll и плагины источника данных проходят модульное тестирование.
Я бы хотел настроить свою сборку так, чтобы все выводилось в каталогах, как я и ожидал, когда будет установлен. Я хочу, чтобы сборки отладки и выпуска были встроены в разные каталоги, но в остальном имеют одинаковую структуру каталогов. Я хочу, чтобы тесты создавались только для отладочных сборок, и чтобы они работали, но были разделены (я думаю, что все тестовые библиотеки будут выводиться в отдельный каталог). Вот как я представляю себе структуру.
Code/
solutions etc here
Debug/
Project.Core.dll
Project.Gui.exe
Project.Cli.exe
readme.txt
lib/
ThirdParty1.dll
ThirdParty2.dll
DataSource/
DataSource1.dll
DataSource2.dll
Tests/
Project.Core.Tests.dll
DataSource1.Tests.dll
Release/
same as Debug but without tests.
Есть ли способ получить решение для построения, как это? Я начинаю думать, что будет трудно собрать плагины и приложение из одного решения, и, возможно, даже не очень разумно, но, поскольку все они будут распространяться вместе, было бы неплохо. Я открыт для использования Nant или другого инструмента для сборки, если это сделает его проще.