2011-01-20 20 views
8

Chciałbym móc spojrzeć na zespół i szybko zidentyfikować, z którego oddziału został zbudowany.TFS Build: dołącz nazwę oddziału w polu "liczba kompilacji" zespołów

Jaki jest najlepszy sposób do utworzenia Kompilacji TFS w celu uwzględnienia nazwy bieżącej gałęzi w polu Numer kompilacji (lub bardziej odpowiednie pole) tworzonych przez siebie zespołów?

+2

Proponuję użyć [AssemblyConfigurationAttribute] (http://msdn.microsoft.com/en-us/library/system.reflection.assemblyconfigurationattribute.aspx), ponieważ jest przeznaczony do użycia w tekstowej konfiguracji kompilacji w dowolnym formacie Informacja. Proponuję także przejście do schematu, w którym masz wspólny plik [VersionInfo] (http://stackoverflow.com/questions/62353/what-are-the-best-practices-for-using-assembly-attributes) pomiędzy projektami abyś mógł zaktualizować te informacje w jednym miejscu. Nic nie wiem o TFS, więc nie mogę ci w tym pomóc. –

+0

@chibacity Oddział nie jest konfiguracją. AssemblyInformationalVersionAttribute wydaje się być bardziej odpowiednim miejscem do przechowywania tych informacji. To trochę dziwne, że nie ma jawnie atrybutu Assembly dla gałęzi. – mhenry1384

Odpowiedz

4

Sprawdźcie w wersji zadaniem w http://msbuildtasks.tigris.org/

Pozwoli to, aby zaktualizować assemblyinfo.cs na budowie.

Że nadal pozostawia „jak” zidentyfikować oddział ...

Na ryzyko wystąpienia debaty religijnej wersji numeracji można poświęcić jedną część do części major.minor.build.revision gałąź. Na przykład major.minor podąża za twoim numerem "zewnętrznym/komercyjnym", kompilacja jest budową z formularza TFS, a wersja 1 wskazuje na główną gałąź, rewizja 2 wskazuje na pewną gałąź. Można także użyć innych atrybutów wersji zespołu, takich jak AssemblyInformationalAttribute, aby przechowywać w nim identyfikator oddziału.

Nie jestem do końca aktualny, w jaki sposób można wykryć oddział, w którym się znajdujesz, ale w najgorszym przypadku jest to tylko kwestia uzyskania bieżącego katalogu i zastosowania pewnej logiki, aby wywnioskować nazwę oddziału. Dane wyjściowe gałęzi tf. Polecenie powinno również podać nazwę oddziału dla bieżącego obszaru roboczego, ale będziesz potrzebować niestandardowego zadania, aby wyodrębnić tylko pierwszy wiersz.

Nie jest to odpowiedź typu "plug-and-play", ale może wskazać właściwy kierunek.

+0

Świetny punkt wyjścia, dzięki. Jestem zaskoczony, że nie jest to pytanie częściej zadawane za pomocą prostego rozwiązania. –

+0

Wiem, że jest to starsza odpowiedź; po prostu komentuję dla celów aktualizacji. Przynajmniej w TFS 2013 i TFS 2015, 'tf branch .' wydaje się nie działać. 'tf branch' wymaga argumentu źródłowego i docelowego i wydaje się, że tworzy gałąź z nazwą docelową z katalogu źródłowego.[kliknij, aby uzyskać dokumentację] (https://msdn.microsoft.com/en-us/library/d73s8b27.aspx) –

0

Wersja jest łatwa w zakresie uzyskiwania i aktualizowania różnych plików AssemblyInfo.cs.

Chciałbym zorganizować strukturę TFS w sposób podobny do konwencji Subversion, więc mam folder trunk, znaczniki i oddziałów.

Dzięki konsekwentnemu nadawaniu nazw można upewnić się, że określony plik MSBuild jest zawsze ustawioną liczbą katalogów w dół z pnia od określonej nazwy oddziału.

Masz niestandardowe zadanie MSBuild, które działa to dla Ciebie (przechodząc w górę hierarchii folderów TFS) i podaj to do swojej właściwości, która jest używana do aktualizowania AssemblyInformationalAttribute. Możesz użyć zadania FileUpdate od http://msbuildtasks.tigris.org/, aby wykonać wymianę Regex na swoich plikach AssemblyInfo.cs.

+1

Myślę, że masz na myśli AssemblyInformationalVersionAttribute. – mhenry1384

Powiązane problemy