Как управлять зависимостями между решениями с использованием TFS2010 - PullRequest
1 голос
/ 22 октября 2010

Я думаю о переходе на TFS2010 для моей команды.Сейчас мы используем сценарии NANT, и я хотел бы знать, как можно решить следующую проблему с TFS2010.

Команда работает над структурой, которая состоит из нескольких решений (.sln).В каждом решении у нас есть папка «Ссылки», в которую мы помещаем сборки, используемые решением.

Например:

SolutionA

  • ProjectAA
  • ProjectAB
  • Ссылка (пусто)

SolutionB

  • ProjectBA
  • Ссылка
    • ProjectAA.dll
    • ProjectAB.dll

Во время сборки мы сначала строим низкоуровневые решения и перемещаем полученные сборки в соответствующую папку «Reference».Затем мы создаем другое решение и перемещаем полученные сборки в другие решения.

Знаете ли вы, как мы можем сделать это с TFS2010?

Спасибо!

1 Ответ

1 голос
/ 22 октября 2010

Это должно быть относительно легко сделать.Для каждого набора сборок, которым вы хотите поделиться, разветвляйте их из статического расположения в вашей структуре Source Control.Теперь возьмите один из ваших TFSBuild.proj файлов сборки (они заменяют ваш файл NAnt) и переопределите цель AfterCompile для решения A или цель BeforeCompile для решения B, затем используйте tf Команда для объединения ваших изменений в разветвленных местах.После объединения используйте команду tf, чтобы также выполнить регистрацию в этом целевом местоположении.

Обратите внимание, что могут существовать библиотеки задач, которые обертывают для вас команду tf, но у меня нет справки, поэтому я не могу сказать вам, какую использовать.Мне лично нравится вызывать команду tf напрямую, используя задачу Exec.

Вот руководство по синтаксису для команды tf merge, вы, вероятно, просто захотите использовать параметр версии T:

tf merge [/recursive] [/force] [/candidate] [/discard] [/version:versionspec]
         [/lock:(none|checkin|checkout)] [/preview] [/baseless] [/nosummary]
         [/noimplicitbaseless] [/conservative] [/format:(brief|detailed)]
         [/noprompt] [/login:username,[password]] source destination

Versionspec:
    Date/Time         D"any .Net Framework-supported format"
                      or any of the date formats of the local machine
    Changeset number  Cnnnnnn
    Label             Llabelname
    Latest version    T
    Workspace         Wworkspacename;workspaceowner
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...