Лучший способ настроить структуру каталогов сборки для приложения Windows - PullRequest
2 голосов
/ 19 марта 2009

Я сейчас пишу небольшое приложение и пытаюсь упорядочить вывод сборки так, чтобы он был немного ближе к готовому продукту. Приложение состоит из ряда различных проектов. Существует базовая библиотека, которая содержит большую часть функциональности, приложение с графическим интерфейсом и приложение командной строки, которые ссылаются на 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 или другого инструмента для сборки, если это сделает его проще.

Ответы [ 2 ]

1 голос
/ 19 марта 2009

Это возможно. Просто измените тег OutputPath вручную в каждом файле .csproj как в файле Debug, так и в Release, примерно так:

<OutputPath>..\$(Configuration)\any_subdirs</OutputPath>

Вы можете отключить сборку тестов для Release с помощью диспетчера конфигурации.

0 голосов
/ 09 июня 2011

Изменение каждого проекта каждый раз, когда вы создаете новый, раздражает.

Вот решение:

  1. Найдите реальный проект против, он будет где-то в ("% programfiles (x86)% \ Microsoft Visual Studio 10.0 \ Common7 \ IDE \ ProjectTemplates *")

  2. Скопируйте его куда-нибудь локально.

  3. Извлеките его.

  4. Редактируйте содержимое, внося изменения, которые лучше соответствуют стилю макета вашего проекта. Убедитесь, что вы обновили имя проекта, имя, которое вы видите при поиске проекта в диалоговом окне нового проекта. Это xml-тег Name, вы найдете его в файле {нечто} .vstemplate.

  5. Сжатие содержимого снова. (Примечание: содержимое НЕ должно находиться в подпапке, поэтому / * и NOT / enjsomefolder automotive/*).

  6. Поместите свой пользовательский проект в ("% USERPROFILE% \ Documents \ Visual Studio 2010 \ Templates \ ProjectTemplates *").

  7. Добавьте новый проект в Visual Studio, выберите свой и наслаждайтесь!

...