2016-03-08 2 views
3

Предположим, что у нас есть решение с тремя проектами:Запуск приложения C# консоли в процессе сборки

enter image description here

  1. DownloadDataBase консольное приложение, которое загружает данные из Интернета и создает файл с sqlite дб
  2. Test - это основные окна приложения, которое использует загруженную базу данных sqlite.
  3. TestLibrary - это библиотека классов, на которую ссылается проект тестирования.

Я знаю, как я могу изменить порядок сборки этих трех проектов, используя Configuration Manager из меню сборки. Но Главный вопрос: Как настроить процесс сборки решения, так что:

  • Это первый Строит DownloadDataBase
  • Затем выполняет эту консольное приложение DownloadDataBase
  • После этого скопируйте созданный sqlite файл от последнего шага до каталога ресурсов проекта Test
  • И, наконец, строит проект Test с использованием обновленного файла sqlite?

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

Спасибо за любую помощь

+0

Обратите внимание на «компиляцию событий» в каждом свойстве проекта. Возможно, это то, что вы ищете – Pikoh

+0

Будет ли это работать локально или на сервере сборки tfs? если tfs: вы можете определить пользовательские шаги в шаблоне сборки (файл xaml). локально: создать автономный исполняемый файл «DownloadDatabaseProject» и запустить его в качестве предварительного шага вашей тестовой программы (вы можете установить его в свойствах тестовых проектов, на вкладке «События сборки») –

+0

@NickOtten Not XAML больше; P XAML мертв в TFSBuild –

ответ

2

Вам нужно настроить файлы проекта MSBuild (т.е. .csproj файлов).

Например, в вашем DownloadDatabase проекта, добавьте в конец файла XML, внутри <project> элемента:

<Target AfterTargets="AfterBuild"> 
    <Exec Command="$(ProjectDir)$(OutputPath)$(AssemblyName).$(OutputType)" /> 
    <Copy SourceFiles="$(ProjectDir)$(OutputPath)file.db" DestinationFolder="$(SolutionDir)Test" /> 
</Target> 

Может быть, есть какая-то ошибка, но в конце концов, вам нужно для использования задач MSBuild для выполнения этих действий.

См. Exec и Copy Страницы документации по документации MSBuild для получения более подробной информации.

+0

Если у вас есть место между именами файлов или любым родителем папкам, вы получите сообщение об ошибке вышло с кодом 9009 – Dreamweaver

Смежные вопросы