2012-01-27 29 views
13

Mam rozwiązanie, które jest zbudowane na serwerze TFS. To rozwiązanie zawiera kilka projektów, które mają niestandardowe zadania MSBuild. Te zadania faktycznie tworzą archiwa zip.Jak przekazać zmienną TFS do zadania MSBuild projektu

Muszę jakoś wyodrębnić makra $ (Rev) z budowania TFS i przekazać je do zadań. Próbowałem użyć MSBuildArguments w karcie procesu definicji kompilacji i działa kiedy ustawić prosty ciąg znaków takich jak:

/t: Wersja = „5”

ale to nie działa z makrami :

/p: version = "$ (Rev: r)"

enter image description here

macie jakieś pomysły?

Edycja: faktycznie potrzebowałem BuildDetail.BuildNumber.

+0

Czy mogę zapytać, co powoduje, że są to makra? –

+0

Hm, właśnie pomyślałem, że to się nazywa makrami. Sprawdź format numeru kompilacji - jest on zbudowany za pomocą tych makr. Czy się mylę? Jestem nowicjuszem w TFS. –

+0

Tak, nie są ogólne. Rzecz formatu numeru kompilacji jest specyficzna dla numeru kompilacji. –

Odpowiedz

14

Możesz nieco zmienić swój szablon procesu budowania, aby to osiągnąć.
domyślnie sekcję która odnosi się do MSBuild wygląda następująco:
enter image description here
To może być rozszerzona do czegoś takiego:
enter image description here

Jeśli teraz wejść w „Argumenty MSBuild” z definicji budowlanej (podobnych do zdjęcia) coś takiego /p:Version=RePlAcE, powinieneś dostać to, czego potrzebujesz.

W innej definicji kompilacji, w której nie jest to potrzebne, po prostu pozostaw to pole puste. To podejście jest alternatywą do znalezionego here i powinno zostać wybrane, jeśli to wstawienie wersji nie jest jawnie pożądane dla wszystkich definicji kompilacji, które go zużywają.

+0

tak, dziękuję. Już zrobiłem dokładnie to samo –