Как получить связанный файл, возвращаемый из набора изменений?


Я хочу запускать сборку только тогда, когда определенный файл зарегистрирован. Поэтому мне нужен способ доступа к связанному имени файла из набора изменений из сценария сборки tfs, чтобы я мог проверить условие перед запуском сборки.

Будут команды, включающие tf.exe, как свойства tf, tf получить помощь? Я знаю, что невозможно извлечь выходные данные из задачи Exec в сценарии сборки.
Как я должен это сделать?

1 2

1 ответ:

Это потребует некоторой работы, поскольку Team Build предполагает, что набор файлов, отслеживаемых на предмет изменений, и набор файлов, которые вы хотите загрузить (рабочая область сборки), - это одно и то же. Я бы написал пользовательскую задачу msbuild. Основные шаги:

  1. получите локальную версию специального файла с помощью GetExtendedItem ()
  2. сравните его с версией, записанной в предыдущей успешной сборке (сохраните эту информацию в реестре или, возможно, в каком-то жестком коде путь)
  3. Если версии совпадают, прервите сборку
  4. Если нет, продолжайте сборку
  5. если сборка прошла успешно, обновите реестр

Помимо GetExtendedItem() [это API, который TF prop вызывает, кстати], другая информация, которая может быть полезна для такой задачи, - это самый последний набор изменений, содержащийся в рабочей области. Чтобы сделать это эффективно, использовать вместо QueryHistory, проходя WorkspaceVersionSpec для versionFrom и версия, чтобы. Эквивалентно: tf hist $ / - r-version: W~W