Сборка TFS 2010 не может обрабатывать пользовательский скрипт MSBuild, который генерирует несколько файлов в нескольких каталогах - PullRequest
1 голос
/ 17 августа 2011

У меня есть собственный скрипт MSBuild (например, WpfResources.proj), в котором я сканирую несколько папок на наличие файлов * .resx и создаю спутниковые библиотеки ресурсов .NET с помощью задачи AL.Выходные данные этого WpfResources.proj содержат несколько * .resources.dll в разных папках (соответствующих разным проектам, которые будут нуждаться в этих ресурсах).

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

WpfResources

Bin
   Project1
      zh-CN
         Project1.resources.dll
      es-ES
         Project1.resources.dll

...

   Project2
      zh-CN
          Project2.resources.dll
      es-ES
          Project2.resources.dll

...

Этот файл WpfResources.proj может быть правильно создан MSBuild.exe.Однако, если я запускаю его в сборке TFS 2010 (т. Е. Создаю определение сборки и ссылается на WpfResources.proj для сборки), ему не удалось скопировать все эти библиотеки ресурсов в расположение для отбрасывания.На самом деле он ничего не выводит в место размещения, даже если на реальном компьютере сборки он работает нормально.

Как сборка TFS 2010 может обрабатывать пользовательские сценарии MSBuild, которые выводят несколько файлов в нескольких папках?Чего-то не хватает в моем WpfResources.proj, который сборка Team будет рассматривать в качестве выходных данных этого проекта MSBuild?

1 Ответ

2 голосов
/ 18 сентября 2011

В системе сборки TFS обрабатывает двоичный каталог вывода и копирование его вывода в папку удаления немного особенным.Он генерирует центральный выходной каталог для всех выходных файлов.

Я бы предположил, что ваш проект MSBuild выводит стандартный путь, как если бы он был в системе разработки, с выходными лотками в структуре папок проекта.TFS не будет копировать их в папку удаления, потому что по умолчанию он копирует только двоичные файлы, созданные в центральной выходной папке.

Для наших систем мы решили проблему (которая также относится к созданию проектов VS Setup).), но с ручным действием копирования, встроенным в шаблон сборки, который копирует выходные данные MSBuild либо в централизованную выходную папку bin, либо непосредственно в расположение папки перетаскивания.

Чтобы добавить такое настраиваемое действие, см.Блог по настройке TFS2010 Эвальда Хофмана по адресу: http://www.ewaldhofman.nl/post/2010/04/29/Customize-Team-Build-2010-e28093-Part-4-Create-your-own-activity.aspx.

Надеюсь, это поможет.

...