TFS 2010 Build Automation and post-build event

W projekcie, który odziedziczyłem, oryginalny deweloper użył wielu zdarzeń post-build w swoich projektach Visual Studio, aby skopiować biblioteki DLL i inne rzeczy podczas budowania wewnątrz VS.

To powoduje smutek teraz, gdy próbuję przenieść te rzeczy do systemu budowania TFS 2010.

Miałem nadzieję, że uda mi się stworzyć nową "ciągłą" konfigurację projektu i wykluczyć zdarzenia post-build z Visual Studio w tej konfiguracji - ale wygląda na to, że te wywołania nie są konfigurowalny w oparciu o konfigurację projektu....

Jakieś pomysły? Czy jest coś, co mógłbym sprawdzić, aby wiedzieć, że działam pod TFS Build, a następnie po prostu pominąć te pliki CMD? Wszelkie pomysły będą mile widziane!

Author: marc_s, 2011-02-21

3 answers

Co zrobić, jeśli ustawisz zmienną środowiskową na serwerze budowania zespołu, a następnie możesz napisać sprawdzenie w swoich krokach budowania postów, aby sprawdzić tę zmienną środowiskową. Jeśli zmienna środowiskowa jest ustawiona, powinieneś wiedzieć, aby pominąć pliki poleceń, które wykonują kroki post build, ponieważ wiesz, że działasz pod TFS build.

Możesz połączyć wszystkie kroki budowania postów w jeden skrypt, a następnie sprawdzić zmienną środowiskową na początku tego scenariusz.

Lub możesz zrobić to w odwrotny sposób i zbudować czek w skrypcie budowania TFS. Możesz sprawdzić tutaj Jak sprawdzić zmienną środowiskową w kompilacji TFS.

Więc w skrypcie TFS build mielibyście coś w stylu:

<RunScripts Condition=" '$(RunScriptsServerVar)' != '' ">
            the environment var is NOT set, so run your scripts since we aren't in
            a TFS build
</RunScripts>
 6
Author: dcp,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2011-02-21 17:18:25

Moim podejściem jest strzeżenie kodu pre - lub post-build za pomocą tego

IF "$(BuildingInsideVisualStudio)"=="true" ( ... Twój kod tutaj… )

Ta zmienna jest automatycznie definiowana przez Visual Studio i nie trzeba zmieniać definicji budowania.

 26
Author: Giulio Vian,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2016-10-10 14:00:00

Używam podobnego podejścia, aby to zrobić. Dodaję następujące kroki do każdego projektu po zbudowaniu:

if '$(TeamBuild)'=='True' exit 0

Następnie podczas konfigurowania definicji Build dodaję po prostu:

/p:TeamBuild=True

...do argumentów MSBuild.

To daje mi elastyczność, aby zachować całą konfigurację w projektach i definicję budowania.

 14
Author: harlam357,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2011-04-12 17:08:19