Организация вывода сборки (централизованно)? - PullRequest
0 голосов
/ 11 сентября 2010

У меня есть решение, которое создает много исполняемых файлов и сборок, которые должны работать в определенной иерархии папок. В основном все файлы .exe и сопровождающие их файлы .dll должны находиться в одной папке, потому что основной exe-файл будет вызывать (через process.start) другие exe-файлы, и они будут динамически загружать сборки.

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

Есть ли центральный способ сделать это в решении (с нашим без UI)? Моя альтернатива до сих пор состояла бы в том, чтобы изменить это в каждом кажущемся проекте - много работы и нестабильность (у меня около 30 или около того проектов).

Ответы [ 2 ]

1 голос
/ 11 сентября 2010

В проектах у вас есть следующие основные параметры:

  1. Настройте выходной путь проекта, чтобы встроенная сборка записывалась в вашу общую файловую структуру.
  2. Добавление сообщения-build-скрипт, который xcopy собирает сборки для вашей общей файловой структуры.
  3. Также возможно (как это делает сборка TFS) переопределить выходную папку для всей сборки, но AFAIK это можно сделать только для одной папки(как это делает TFSBuild), поэтому вы не можете построить иерархию файлов.

Недостаток 1,2 состоит в том, что для этого нужно настроить каждый проект.

Я склонен использовать (2) подход «сценарий после сборки».Причины этого:

  • Базовая сборка остается прежней.В настольных сборках сборка пишется локально, а в серверных (TFS) сборках она (досадно) перенаправляет все в общую папку.xcopy целевого файла работает независимо от того, как TFS Build мешает выводам.

  • Используя xcopy, вы можете полностью контролировать вывод (построить иерархию, а не объединять все в одной папке),и копируйте только те предметы, которые вам нужны.Я предпочитаю выбирать только те файлы, которые мне нужны для окончательной установки, а не полагаться на автоматизированный процесс, который отбросит ненужные ненужные файлы (файлы xml doc и pdb)

  • С VS2010 "опция «копировать локально», похоже, полностью испортила ссылки на файлы.Мы используем наши библиотеки, ссылаясь на предварительно собранные dll-файлы из общей папки, но после копирования локальный VS часто изменяет ссылку на «скопированный локальный» dll в папке отладки вместо папки наших общих библиотек.Это означает, что любые последующие изменения в библиотеке никогда не будут собраны сборкой!Argh!Единственное решение, которое я нашел, - отключить «копировать локально» для каждой ссылки.

0 голосов
/ 11 сентября 2010

Под TS вы подразумеваете TFS и MS Build?Почему вы не можете просто настроить, куда выводится сборка в файлах проекта?

...