копировать файлы после успешной сборки - PullRequest
0 голосов
/ 14 сентября 2010

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

Attrib -r "$ (ProjectDir) Data *. " / S & xcopy / S / Y / I "$ (ProjectDir) Data *."" ShareLocation "

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

Может кто-нибудь помочь, пожалуйста, что будет лучшим решением для этого.Я не инженер по сборке и очень мало знаю о MSBuild, поэтому, если вы ответите MSBuild, поделитесь хорошим примером, а не указывайте ссылку на MSDN.Спасибо заранее.

Притам

Ответы [ 3 ]

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

Вы можете добавить условие, что только выпуски сборки будут выполнять команду:

if "$ (ConfigurationName)" == "Release" (команда)

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

Спасибо всем за вашу помощь. Вот что я использовал в своем файле TFSBuild.proj и решил мою проблему

<Target Name="AfterCompile">
<Exec Command="Attrib -r &quot;$(SolutionRoot)\<SolutionFolder>\*.*&quot; /S"></Exec>
<Exec Command="xcopy /S /Y /I &quot;$(SolutionRoot)\<SolutionFolder>\*.*&quot; &quot;<server location>;" />     

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

Если у вас есть выделенный сервер для сборки TFS, вы можете вызвать отдельный файл .bat как событие после сборки.

Внутри события после сборки вы можете указать имя сервера, т.е. проверить, выполняется ли сборка на этом удаленном сервере. Если сборка выполняется на удаленном сервере, вы можете использовать команду копирования здесь.

Пример: IF / i "% COMPUTERNAME%" == "имя_сервера" (команда)

...