Как получить связанный файл, проверяемый из набора изменений? - PullRequest
2 голосов
/ 27 августа 2009

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

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

1 Ответ

2 голосов
/ 27 августа 2009

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

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

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

...