Atividades do Team Foundation Build
O Team Foundation Build as atividades são os componentes fundamentais do processo de compilação no seu Team Foundation Build do sistema. Você pode usar essas atividades para criar um processo de compilação personalizada para atender aos requisitos da equipe como, por exemplo, seguindo a lógica personalizada ou a realização de tarefas especializadas.
Na maioria dos casos, a melhor maneira de criar um modelo de processo de compilação personalizada é baseá-lo em um modelo padrão (DefaultTemplate.xaml). Dessa forma, você pode aproveitar da funcionalidade geralmente útil que já foi criada ao personalizar partes específicas para atender às suas necessidades. Outra vantagem dessa abordagem é que você pode ver exemplos práticos e específicos de como você pode usar as atividades que este tópico descreve. Para obter informações sobre como criar seu modelo de processo de compilação, consulte Criar e trabalhar com um modelo de processo de compilação personalizados.
Importante |
---|
Você deve criar um processo de compilação personalizada somente se você deve atender aos requisitos especializados. Você pode usar DefaultTemplate.xaml para definir rapidamente um processo de compilação que atenda a vários requisitos típicos. Para obter mais informações, consulte Definir uma compilação usando o modelo padrão. |
Neste tópico
Permissões necessárias
Orientado a meta referência às atividades
Referência alfabética às atividades
Permissões necessárias
Para executar procedimentos que usam Team Foundation Build atividades, você deve ter as seguintes permissões definidas Permitir:
Editar definição de compilação
Fazer check-out e Check-in para os diretórios de controle de versão relevantes (como o BuildProcessTemplates o subdiretório do seu projeto de equipe)
Compilações de fila
Para obter mais informações, consulte Permissões de Team Foundation Server.
Orientado a meta referência às atividades
Execute tarefas básicas
Obter os valores de variáveis de ambiente
Obtenha os caminhos para os arquivos no espaço de trabalho
Trabalhar com pastas
Obter o caminho para o diretório de trabalho do agente de compilação
Faça o download de arquivos que não estão em um espaço de trabalho.
Localizar arquivos
Avisos, erros, mensagens e outros dados de gravação no log de compilação
Gravar metadados de compilação para o data warehouse
Controle o processo de compilação
Executar atividades no agente de compilação
Usar uma estrutura de mutex nomeado para implementar um processo de thread seguro
Restringir as seções do processo de compilação com o motivo (disparador)
Compile, teste e executar outras tarefas
Usar o MSBuild para binários de compilar, executar análise de código e executar outras tarefas
Usar MSTest para executar testes
Obter uma lista de testes que afeta a compilação
Iniciar um processo
Trabalhar com controle de versão
Associar os conjuntos de alterações e itens com a criação de trabalho
Fazer check-in gated alterações
Avaliar as diretivas de check-in
Arquivos de etiquetas no controle de versão
Trabalhar com itens de trabalho
Associar os conjuntos de alterações e itens com a criação de trabalho
Criar um item de trabalho
Trabalhar com dados de símbolo
Incorporar os caminhos de controle de versão e versões dos dados de símbolo nos arquivos. PDB
Publicar os símbolos para um armazenamento de símbolo de SymStore
Obter referências a objetos úteis
Obtenha uma referência a um objeto para uma coleção de projeto de equipe
Obtenha uma referência a um objeto para um agente de compilação
Obtenha uma referência a um objeto para um detalhe de compilação
Obtenha uma referência a um objeto para um ambiente de compilação
Referência alfabética às atividades
AgentScope
AssociateChangesetsAndWorkItems
CheckInGatedChanges
ConvertWorkspaceItem
ConvertWorkspaceItems
CopyDirectory
CreateDirectory
CreateWorkspace
DeleteDirectory
DeleteWorkspace
DownloadDeArquivo
DownloadFiles
EvaluateCheckInPolicies
ExpandEnvironmentVariables
FindMatchingFiles
GetBuildAgent
GetBuildDetail
GetBuildDirectory
GetBuildEnvironment
GetImpactedTests
GetTeamProjectCollection
GetWorkspace
IndexSources
InvokeForReason
InvokeProcess
LabelSources
LabelWorkspace
MSBuild
MSTest
OpenWorkItem
PublishSymbols
RevertWorkspace
SetBuildProperties
SharedResourceScope
SyncWorkspace
TfsBuild
UpdateBuildNumber
WriteBuildError
WriteBuildInformation <T>
WriteBuildMessage
WriteBuildWarning
Execute tarefas básicas
Você pode usar Team Foundation Build atividades para realizar as seguintes tarefas:
Obter os valores de variáveis de ambiente
Obtenha os caminhos para os arquivos no espaço de trabalho
Trabalhar com pastas
Obter o caminho para o diretório de trabalho do agente de compilação
Faça o download de arquivos que não estão em um espaço de trabalho.
Localizar arquivos
Avisos, erros, mensagens e outros dados de gravação no log de compilação
Gravar metadados sobre a compilação
Obter os valores de variáveis de ambiente (atividade de ExpandEnvironmentVariables)
Use o ExpandEnvironmentVariables a atividade para resolver uma ou mais variáveis de ambiente em um servidor de compilação. As variáveis de ambiente são lidos no agente de compilação se essa atividade está dentro de um AgentScope seqüência; Caso contrário, eles são lidos no controlador de compilação.
O resultado de ExpandEnvironmentVariables (String) propriedade
Retorna o resultado da operação. Por exemplo: The temp directory on machine BLDSERV3 is C:\windows\SERVIC~2\NETWOR~1\AppData\Local\Temp.
Propriedades do argumento de ExpandEnvironmentVariables
Input (String): Você deve especificar a seqüência de caracteres que contém as variáveis de ambiente que você deseja resolver. Você deve formatar cada variável de ambiente, especificando um MSBuild propriedade em vez de usando a porcentagem de Windows símbolo notação. Por exemplo: "The temporary directory on machine $(COMPUTERNAME) is $(TEMP)."
AdditionalVariables (IDictionary<TKey, TValue><String,String>): Você pode especificar um IDictionary objeto que contém todas as variáveis adicionais (como chaves) que você deseja resolver para seus valores correspondentes.
Voltar ao topo
Obtenha os caminhos para os arquivos no espaço de trabalho
Cada compilação tem um espaço de trabalho de controle de versão é definido na espaço de trabalho guia de definição de compilação. O espaço de trabalho fornece a compilação com acesso a arquivos de código-fonte e outros arquivos que ele precisa de um sistema de controle de versão. Team Foundation Buildfornece duas atividades que você pode usar para trabalhar com arquivos no espaço de trabalho de compilação: ConvertWorkspaceIteme ConvertWorkspaceItems.
Para obter mais informações sobre espaços de trabalho de compilação, consulte Criar uma definição de compilação básico.
Dica
Para obter orientações detalhadas passo a passo sobre como usar o ConvertWorkspaceItem a atividade em um cenário típico, consulte Controlar onde o sistema de compilação coloca seus binários.
Obter o caminho para um arquivo em um espaço de trabalho (ConvertWorkspaceItem de atividade)
Use o ConvertWorkspaceItem atividade para converter um caminho de servidor para um caminho local em que o agente de compilação ou converter um caminho local em que o agente de compilação para um caminho de servidor.
O resultado de ConvertWorkspaceItem (String) propriedade
Retorna o caminho convertido.
Propriedades do argumento de ConvertWorkspaceItem
Input (String): Você deve fornecer o valor de caminho que você deseja converter.
Workspace (Workspace): Você deve fornecer uma referência para o Workspace que contém o arquivo. Na maioria dos casos, você deve definir essa propriedade para a variável que você inicializar no resultado propriedade da CreateWorkspace atividade. Se você estiver criando um processo de compilação se baseia em DefaultTemplate.xaml, provavelmente, você deve usar o Workspace variável.
Direção
Converta um caminho de servidor para um caminho local: No direção propriedade, selecione ServerToLocale especifique o caminho para o arquivo no servidor de entrada (String) propriedade.
Por exemplo, sua equipe pode armazenar utilitários comuns no seguinte diretório: $/OurTeam/BuildProcess/Util. Você pode criar um processo de compilação personalizado que executa o ScanBinaries.exe utilitário após seus binários são compilados. Se o $/OurTeam/BuildProcess/Util é mapeado na espaço de trabalho guia de sua definição de compilação, você pode especificar $/OurTeam/BuildProcess/Util/ScanBinaries.exe na Input propriedade para obter o caminho local para o utilitário da resultado (String) propriedade.
Converta um caminho local para um caminho de servidor: No direção propriedade, selecione ServerToLocale, em seguida, especifique o caminho local para o arquivo em que o agente de compilação na Input propriedade.
Obter os caminhos de arquivos em um espaço de trabalho (ConvertWorkspaceItems de atividade)
Use o ConvertWorkspaceItems atividade para converter os caminhos do servidor para caminhos locais em que o agente de compilação ou converter caminhos locais em que o agente de compilação para caminhos do servidor.
O resultado de ConvertWorkspaceItems (IList<String>) propriedade
Retorna os valores convertidos do caminho.
Propriedades do argumento de ConvertWorkspaceItems
Input (IEnumerable<T><String>): Você deve fornecer os valores de caminho que você deseja converter.
Workspace (Workspace): Você deve fornecer uma referência a Workspace que contém os arquivos. Na maioria dos casos, você deve definir essa propriedade para a variável que você inicializar no resultado propriedade da CreateWorkspace atividade.
Dica
Se você estiver criando um processo de compilação se baseia em DefaultTemplate.xaml, provavelmente, você deve usar o Workspace variável.
Direção: Selecione um dos seguintes valores:
Selecione ServerToLocal se você estiver especificando uma coleção de valores de caminho do servidor na Input propriedade e desejar que o resultado propriedade para retornar uma lista de valores de caminho local.
Selecione LocalToServer se você estiver especificando uma coleção de valores de caminho local na Input propriedade e desejar que o resultado propriedade para retornar uma lista de valores de caminho do servidor.
Trabalhar com pastas
Você pode trabalhar com diretórios usando várias atividades em Team Foundation Build.
Dica
Se você deve trabalhar com os diretórios que fazem parte do espaço de trabalho de controle de versão da sua criação, você deve usar as atividades do espaço de trabalho. Para obter mais informações, consulte Obter caminhos para arquivos no espaço de trabalho.
Crie um diretório (CreateDirectory atividade)
Use o CreateDirectory atividade para criar um diretório, o nome que você especificar o diretório (String) propriedade.
Copiar um diretório (CopyDirectory de atividade)
Uso o CopyDirectory atividade recursivamente copiar todo o conteúdo de um diretório, você pode especificar na fonte (String) propriedade, para outro diretório, você pode especificar na destino (String) propriedade. O diretório que você especificar o destino propriedade já deve existir. Diretórios vazios ou subdiretórios não são copiados.
Excluir um diretório (DeleteDirectory atividade)
Use o DeleteDirectory atividade para excluir um diretório, o nome que você especificar o diretório (String) propriedade. Se o diretório que você está excluindo contém subdiretórios, você deve definir o recursiva (Boolean) propriedade para True; Caso contrário, a compilação falhará.
Obter o caminho para o agente de compilação (GetBuildDirectory de atividade) do diretório de trabalho
Use o GetBuildDirectory atividade para obter o caminho de literal para o diretório de trabalho do agente de compilação da resultado (String) propriedade. Você pode usar essa atividade apenas em um AgentScope atividade.
Voltar ao topo
Faça o download de arquivos que não estão em um espaço de trabalho.
Use o DownloadFiles a atividade para baixar um ou mais arquivos. Ignorar o DownloadFile atividade.
Atividade de DownloadFiles
Use o DownloadFiles a atividade para fazer o download de um ou mais arquivos de controle de versão.
Dica
Se os arquivos que você deseja fazer o download do espaço de trabalho de compilação, você provavelmente deve acessá-los usando o ConvertWorkspaceItem atividade.
Propriedades do argumento de DownloadFiles
LocalPath (String) É necessário especificar um valor:
Se você estiver fazendo o download de um único arquivo, especifique o caminho local e o nome que você deseja dar à cópia local do arquivo que você está baixando; Por exemplo, "c:\Docs\readme.txt".
Se você estiver fazendo o download de vários arquivos, especifique o caminho local para o diretório no qual você deseja fazer o download de arquivos; Por exemplo, "c:\Docs\".
ServerPath (String) É necessário especificar um valor:
Se você estiver fazendo o download de um único arquivo, especifique o caminho do servidor e o nome do arquivo que você está baixando; Por exemplo, "$/Docs/readme.txt".
Se você estiver fazendo o download de vários arquivos, especifique o caminho do servidor para o diretório que contém os arquivos que você deseja baixar; Por exemplo, "$/Docs/".
Recursion (RecursionType):
OneLevel: Downloads de arquivos no diretório que você especificar o ServerPath propriedade.
Full: Baixa os arquivos no diretório que você especificar o ServerPath propriedade e todos os arquivos de todas as subpastas.
Version (String): Você pode especificar um versionspec. Para baixar a versão atual, deixe esta propriedade definida como Microsoft.TeamFoundation.VersionControl.Client.VersionSpec.Latest.DisplayString. Para obter mais informações sobre versionspecs, consulte Sintaxe de linha de comando (controle de versão).
DeletionID (Int32): Você deve especificar essa propriedade somente se você estiver fazendo o download de um arquivo que foi excluído do controle de versão. Você pode obter esse valor interativamente digitando tf dir /deleted em um prompt de comando. (Para obter mais informações, consulte Comando dir). No entanto, Team Foundation Build não fornece uma atividade interna para obter um DeletionID. Para usar essa propriedade, você deve obter ou criar uma atividade personalizada que fornece essa funcionalidade.
Voltar ao topo
Atividade de DownloadFile
Ignorar o DownloadFile atividade. O DownloadFiles atividade é a maneira mais fácil de fazer o download de um ou mais arquivos.
Localizar arquivos (FindMatchingFiles de atividade)
Use o FindMatchingFiles a atividade para localizar arquivos. Especificar critérios de pesquisa do MatchPattern (String) propriedade. Esta propriedade, você pode especificar um argumento que inclui os seguintes elementos:
Sintaxe compatível com o searchPattern argumento da Directory GetFiles(String, String) método.
**Para especificar uma pesquisa recursiva. Por exemplo:
Para pesquisar o diretório de fontes para arquivos de texto, você poderia especificar algo que se parece com o seguinte valor para o MatchPattern propriedade: String.Format("{0}\**\*.txt", SourcesDirectory).
Para pesquisar o diretório de fontes para arquivos de texto em um ou mais subpastas que são chamadas de txtfiles, você poderia especificar algo que se parece com o seguinte valor para o MatchPattern propriedade: String.Format("{0}\**\txtfiles\*.txt", SourcesDirectory).
Você coletar o resultado da operação de resultado (IEnumerable<T><String>) propriedade.
Avisos, erros, mensagens e outros dados de gravação no log de compilação
Atividade de WriteBuildMessage
Use o WriteBuildMessage a atividade para escrever uma mensagem informativa no log de compilação. Você deve especificar a mensagem de mensagem (String) propriedade. Você também pode indicar a importância da mensagem, modificando o valor de importância propriedade (BuildMessageImportance).
Dica
-
Os usuários do processo de compilação podem depender de verbosidade de filtragem para reduzir a sobrecarga de informações tanto em relação ao qual deve exibir e os dados armazenados no depósito. Pode ajudar a tornar a essa filtragem mais eficaz usando uma abordagem consistente e cuidadosa para configuração de importância propriedade de suas mensagens de compilação. Para obter mais informações sobre como os usuários filtrar o detalhamento do log de compilação, consulte Definir uma compilação usando o modelo padrão.
-
Se você estiver usando as configurações padrão, sua mensagem não será gravada no log de compilação. Para resolver esse problema, execute as seguintes etapas:
-
Definir o WriteBuildMessage importância propriedade para Microsoft.TeamFoundation.Build.Client.BuildMessageImportance.High.
-
No processo guia de definição de compilação, defina o Verbosidade do log parâmetro de processo para Detailed ou Diagnostic.
-
Atividade de WriteBuildWarning
Use o WriteBuildWarning a atividade para gravar uma mensagem de aviso no log de compilação. Avisos são exibidos com um ponto de exclamação amarelo na janela de resultados da compilação. Você deve especificar a mensagem de mensagem (String) propriedade.
Atividade de WriteBuildError
Use o WriteBuildError atividade para gravar uma mensagem de erro em que o log de compilação. Erros aparecem com um ponto de exclamação vermelho na janela de resultados da compilação. Quando um erro é gravado no log de compilação, a compilação é classificada como Partially Succeeded em melhores. Você deve especificar a mensagem de mensagem (String) propriedade.
WriteBuildInformation <T> Atividade
Use o WriteBuildInformation<T> a atividade para colocar um objeto para o log de compilação. Quando um usuário exibe o log, na janela de resultados da compilação, o objeto é processado usando reflexão.
WriteBuildInformation <T> Propriedades do argumento
Value (Object): Você deve especificar o objeto que você deseja colocar no log de compilação. Para o objeto a ser processado na janela de resultados da compilação, o objeto deve implementar IBuildInformationNode e defina a Type para um dos seguintes InformationTypes valores:
ActivityProperties
ActivityTracking
AgentScopeActivityTracking
BuildError
BuildMessage
BuildProject
BuildStep
BuildWarning
ExternalLink
OpenedWorkItem
ParentToBuildDetail: Você pode especificar False para tornar o pai deste objeto ser o pai desta atividade, ou você pode especificar True para tornar o pai do IBuildDetail objeto.
Um efeito dessa propriedade é como as informações são exibidas na janela do resultado da compilação. Se você especificar False, as informações são recuadas e alinhadas com a saída de outras atividades que estão antes e depois o WriteBuildInformation<T> atividade e que estão no mesmo nível. Se você especificar True, as informações não são recuadas.
Voltar ao topo
Gravar metadados para o Data Warehouse
Você pode escrever os metadados sobre a compilação para o data warehouse:
Escreva o número de compilação (UpdateBuildNumber de atividade)
Pontos de dados de chave de gravação sobre a compilação (SetBuildProperties de atividade)
Dica
Se essas atividades não oferecem suporte o metadados que você deseja escrever, você pode usar o GetBuildDetail atividade para obter uma referência para o IBuildDetail de objeto e, em seguida, atribuir os dados diretamente para o objeto usando essa referência.
Escreva o número de compilação (UpdateBuildNumber de atividade)
Use o UpdateBuildNumber a atividade para definir o número de compilação (ou nome) de compilação. Esta atividade executa as seguintes etapas:
Constrói um número de compilação se baseia em uma expressão que determina o formato de número de compilação. O processo de compilação geralmente aceita essa expressão de um argumento de fluxo de trabalho, o que é fornecido por um parâmetro no processo guia de uma definição de compilação.
Define o número de compilação (ou nome) da compilação, escrevendo o valor resultante o BuildNumber propriedade.
O resultado de UpdateBuildNumber (String) propriedade
Resultado: Retorna o novo BuildNumber valor.
Propriedades de UpdateBuildNumber
BuildNumberFormat (String): Você deve fornecer uma expressão que especifica o formato dos números de compilação. Você pode usar os símbolos na expressão. Considere a situação de exemplo a seguir:
O projeto de equipe é denominadoContosoCore
A definição de compilação é denominada DailyBuild.
A identificação da compilação é4
Hoje é dia 24 de agosto de 2009.
O tempo é 9:50:43 PM.
A compilação foi executada uma vez hoje.
Por exemplo, você poderia definir a BuildNumberFormat a propriedade para o seguinte valor:
$(BuildDefinitionName)_$(Date:yyyyMMdd)$(Rev:.r)
Nesse caso, a próxima concluída build do DailyBuild seria definida como no seguinte número de compilação:
DailyBuild_20090824.2
A tabela a seguir mostra como cada token é resolvido com base no exemplo anterior.
Token
Valor de substituição com base no exemplo anteriormente nesta seção
$(BuildDefinitionName)
DailyBuild
$(BuildID)
4
$(DayOfMonth)
24
$(DayOfYear)
236
$(Hours)
09
$(Minutes)
50
$(Month)
08
$(Rev:.rr)
2 (próxima compilação neste dia será 3 e assim por diante)
$(Date:MMddyy)
082409
$(Seconds)
50
$(TeamProject)
ContosoCore
$(Year:yy)
09
$(year:yyyy)
2009
Voltar ao topo
Pontos de dados de chave de gravação sobre a compilação (SetBuildProperties de atividade)
Use SetBuildProperties para gravar dados de chave aponta para o IBuildDetail o objeto, que gerencia o armazenamento de dados sobre cada compilação no depósito de dados. Grande parte desses dados é exibida ao usuário na janela de resultados da compilação.
Propriedades de SetBuildProperties
PropertiesToSet: Você deve selecionar as caixas de seleção para os nomes das propriedades que você deseja definir.
BuildNumber (String): Você pode definir o BuildNumber da compilação, você pode pensar em como o nome da compilação.
Dica
Se você desejar definir esse valor com base nas configurações de usuário especificado na processo guia de definição de compilação, você provavelmente deverá usar o UpdateBuildNumber atividade em vez da propriedade.
CompilationStatus (BuildPhaseStatus): Você pode definir o status de compilação (CompilationStatus). (O MSBuild atividade também define esse valor automaticamente.)
DropLocation (String): Você pode registrar o local de recebimento na DropLocation propriedade.
Observação Se você definir essa propriedade, você não criar, na verdade, o local de destino. Em vez disso, você pode usar essa propriedade para armazenar, no data warehouse, o local da pasta de armazenamento, você normalmente cria usando o CreateDirectory atividade.
KeepForever (Boolean): Você pode definir o KeepForever propriedade para True se você deseja ignorar as configurações na Política de retenção guia de definição de compilação e manter a compilação concluída indefinidamente.
LabelName (String): Você pode definir o LabelName propriedade para gravar o rótulo que você usou para marcar esta compilação em arquivos de código-fonte no controle de versão. Definir essa propriedade normalmente para coincidir com o valor a nome propriedade da LabelWorkspace atividade.
Importante Team Foundation Buildrequer esses dados para associar um changeset e itens com compilações de trabalho. Se você não fornecer esses dados, o AssociateChangesetsAndWorkItems atividade falhará.
LogLocation (String): Você pode usar o LogLocation propriedade registre o caminho UNC do arquivo para a pasta onde o processo de compilação coloca o arquivo de log.
Observação Você provavelmente não precisará usar essa propriedade no seu processo de compilação personalizada. Esta propriedade é usado principalmente pela UpgradeTemplate.xaml o arquivo para dar suporte a processos de compilação de legado.
Quality (String): Você pode registrar a qualidade da compilação do Quality propriedade.
SourceGetVersion (String): Você pode usar o SourceGetVersion propriedade para registrar a especificação de versão para o qual as fontes são recuperadas para compilação.
Status (BuildStatus): Você pode registrar o status geral da compilação do Status propriedade. Por exemplo, você pode usar essa propriedade para indicar se a compilação teve êxito ou falha.
TestStatus (BuildPhaseStatus): Você pode usar o TestStatus propriedade para registrar o status geral dos testes foram executados no build. Por exemplo, você pode usar essa propriedade para indicar se os testes que você executou a esta compilação teve êxito ou falha.
Voltar ao topo
Controle o processo de compilação
Você pode usar Team Foundation Build atividades para controlar o processo de compilação das seguintes maneiras:
Executar atividades no agente de compilação
Usar uma estrutura de mutex nomeado para implementar um processo de thread seguro
Restringir as seções do processo de compilação com o motivo (disparador)
Executar atividades em que o agente de compilação (AgentScope de atividade)
Use o AgentScope a atividade para delimitar as partes do processo de compilação que você deseja executar no agente de compilação.
Propriedades do argumento de AgentScope
Seleção de agente
MaxWaitTime (TimeSpan): Você pode especificar a quantidade máxima de tempo que o processo de compilação aguarda por um agente de compilação se torne disponível. Você pode digitar um valor no formato de hh:mm:ss. Por exemplo, a compilação falhará com um erro de tempo limite se você especificar um valor de 01: 30: 45 e a compilação não foi atribuída a um agente de compilação após 1 hora, 30 minutos e 45 segundos. Especifique um valor de 00: 00: 00, se você deseja dar a controladora de compilação ilimitada tempo para encontrar um agente de compilação para processar a definição de compilação.
Importante Você pode evitar fazer backup de sua fila de compilação, especificando um valor razoável de zero a MaxWaitTime propriedade
ReservationSpec (AgentReservationSpec): Você pode restringir o tipo de agente de compilação que processará as atividades que contém a esta atividade. Por exemplo, você pode especificar que somente os agentes de compilação que têm uma certa marca são usados para processar as atividades dentro do AgentScope atividade.
Execução
MaxExecutionTime (TimeSpan): Você pode especificar a quantidade máxima de tempo permitido para este AgentScope a atividade seja concluída. Você pode digitar um valor no formato de hh:mm:ss. Por exemplo, a compilação falhará com um erro de tempo limite se você especificar um valor de 04: 30: 15 e o agente de compilação não concluiu seu trabalho após 4 horas, 30 minutos e 15 segundos. Especifique um valor de 00: 00: 00 se você quiser que o agente de compilação ilimitado de dar tempo para processar a compilação.
Dica
Você pode evitar fazer backup de sua fila de compilação, especificando um valor razoável de zero a MaxExecutionTime propriedade
Escopo
- DataToIgnore: Ignore esta propriedade.
Voltar ao topo
Usar uma estrutura de mutex nomeado para implementar um processo de Thread seguro (atividade de SharedResourceScope)
Use o SharedResourceScope a atividade para implementar a estrutura de um mutex nomeado (exclusão mútua). O segmento do processo de compilação que podem ser colocadas dentro dessa atividade será "segmento seguro".
Um uso típico desta atividade é para delimitar as partes de um processo de compilação que precisar acessar um recurso compartilhado que deve ser acessado por um único processo por vez. Por exemplo, convém suas criações para escrever, em ordem seqüencial, um arquivo de texto simples em um compartilhamento de arquivo. Para certificar-se de que esse tipo de processo funcione corretamente, você deve implementá-lo dentro de um SharedResourceScope atividade.
Você pode encontrar outro exemplo em DefaultTemplate.xaml, no qual a chamada da PublishSymbols atividade é incorporada em um SharedResourceScope atividade:
Seqüência (Sequence) >
Executar o agente (AgentScope) >
Tente compilar, teste e associar conjuntos de alterações e itens de trabalho (TryCatch [Try]) >
Seqüência (Sequence) >
Obtenha impactados testes, fontes de índice e publicar os símbolos (Parallel) >
Se SourceAndSymbolServerSettings.IndexSources ou SourceAndSymbolServerSettings.HasSymbolStorePath (If [Then]) >
Fontes de índice e publicar os símbolos para compilações disparadas (InvokeForReason) >
Se SourceAndSymbolServerSettings.HasSymbolStorePath (If [Then]) >
Tente publicar símbolos (TryCatch [Try]) >
Sincronizar o acesso ao armazenamento de símbolo (SharedResourceScope) >
Publicar símbolos (PublishSymbols)
Para obter informações sobre como navegar essa estrutura, consulte Navegar em um fluxo de trabalho do Windows complexo.
Propriedades do argumento de SharedResourceScope
ResourceName (String): Você deve especificar um valor. Todas as instâncias de SharedResourceScope as atividades são executadas uma por vez se eles tiverem o mesmo ResourceName valor na sua coleção de projeto de equipe (mesmo se eles estão em modelos de definição de compilação diferente).
MaxExecutionTime (TimeSpan): Você pode especificar a quantidade máxima de tempo permitido para o SharedResourceScope a atividade seja concluída. Você pode digitar um valor no formato de hh:mm:ss. Por exemplo, a compilação falhará com um erro de tempo limite se você especificar um valor de 04: 30: 15 e o SharedResourceScope atividade não foi concluída após 4 horas, 30 minutos e 15 segundos. Especifique um valor de 00: 00: 00, se você deseja permitir tempo ilimitado processar o SharedResourceScope atividade.
Dica
Você pode evitar fazer backup de sua fila de compilação, especificando um valor razoável de zero a MaxExecutionTime propriedade
MaxWaitTime (TimeSpan): Você pode especificar a quantidade máxima de tempo que o processo de compilação aguarda na fila para processar o SharedResourceScope atividade. Você pode digitar um valor no formato de hh:mm:ss. Por exemplo, a compilação falhará com um erro de tempo limite se você especificar um valor de 01: 30: 45 e o SharedResourceScope atividade não foi processado após 1 hora, 30 minutos e 45 segundos. Especifique um valor de 00: 00: 00 se você deseja permitir que o processo de compilação ilimitado tempo de espera na fila.
Dica
Você pode evitar fazer backup de sua fila de compilação, especificando um valor razoável de zero a MaxWaitTime propriedade
Voltar ao topo
Restringir as seções do processo de compilação com o motivo (disparador) (InvokeForReason de atividade)
Use o InvokeForReason atividade para delimitar um segmento do processo de compilação que você deseja executar apenas em compilações que foram executados por um motivo específico. Motivos da compilação geralmente são definidos pelo disparador que o usuário seleciona na disparador guia de definição de compilação. Você pode especificar, na motivo propriedade, um ou mais valores de razão que você deseja permitir. A tabela a seguir descreve a condição que faz com que cada valor.
Motivo |
Causa |
---|---|
BatchedCI |
Sem interrupção compilações foi especificado na disparador guia de definição de compilação. |
CheckInShelveset |
Gated Check-in foi especificado na disparador guia de definição de compilação. |
IndividualCI |
Integração contínua foi especificado na disparador guia de definição de compilação. |
Manual |
Um usuário manualmente na fila a compilação. Para obter mais informações, consulte Uma compilação de fila. |
Schedule |
Agenda foi especificado na disparador guia de definição de compilação e o criar o mesmo que nada mudou desde a compilação anterior foi desmarcada. |
ScheduleForced |
Agenda foi especificado na disparador guia de definição de compilação e o criar o mesmo que nada mudou desde a compilação anterior caixa de seleção também foi selecionada. |
UserCreated |
Esse motivo ocorre devido ao código que implementa os objetos do Microsoft.TeamFoundation.Build namespace. Para obter mais informações, consulte Team Foundation Server SDK. |
ValidateShelveset |
Um usuário em fila uma compilação particular. Para obter mais informações, consulte Uma compilação de fila. |
Voltar ao topo
Compile, teste e executar outras tarefas
Você pode usar Team Foundation Build atividades de compilação de binários, executar testes e executar outras tarefas:
Usar o MSBuild para binários de compilar, executar análise de código e executar outras tarefas
Usar MSTest para executar testes
Obter uma lista de testes que esta compilação afeta
Usar o MSBuild para binários de compilar, executar análise de código e executar outras tarefas (MSBuild atividade)
Use o MSBuild a atividade de compilação de binários, executar análise de código e aproveitar qualquer outra funcionalidade que MSBuild fornece.
Resultado do MSBuild
Nenhuma propriedade dessa atividade retorna um resultado. No entanto, define a esta atividade CompilationStatus para Failed se os erros de compilação são registrados.
Propriedades do argumento do MSBuild
AdditionalVCOverrides (String): Se você definir GenerateVsPropsFile para True, o conteúdo desta propriedade será incorporado em gerado .vsprops arquivo.
CommandLineArguments (String): Você pode especificar argumentos de linha de comando que você deseja passar para MSBuild.
Configuração (String): Você pode especificar a configuração a ser criado. Por exemplo: “debug” ou “release”.
GenerateVSPropsFile (Boolean): Se essa propriedade estiver definida como True, MSBuild gera um padrão .vsprops o arquivo para passar para projetos do C++. Este arquivo incluirá o diretório de saída para projetos C++ e tudo o que você especificar o AdditionalVCOverrides propriedade.
LogFile (String): Você pode especificar o nome do log de arquivo que MSBuild deve criar.
LogFileDropLocation (String): Você pode especificar o caminho UNC totalmente qualificado para o diretório onde você deseja MSBuild para soltar o arquivo de log.
MaxProcesses (Int32): Você pode especificar o número máximo de processos que MSBuild cria.
OutDir (String) você pode especificar o diretório onde MSBuild descartes binários compilados. Para obter mais informações, consulte Controlar onde o sistema de compilação coloca seus binários.
Platform (String): Você pode especificar a plataforma para o qual MSBuild compilações. Por exemplo: “Any CPU”, “x86”, or “x64”.
Project (String): Você pode especificar a solução ou o código do projeto que MSBuild compilações.
ResponseFile (String): Você pode especificar o arquivo de resposta que MSBuild usa.
RunCodeAnalysis (CodeAnalysisOption): Você pode especificar se a análise de código deve sempre ser executado, nunca deve ser executado ou deve ser executado de acordo com as configurações do projeto.
Targets (IEnumerable<T><String>): Você pode especificar os alvos de build.
TargetsNotLogged (IEnumerable<T><String>): Você pode especificar os destinos para o qual ProjectStarted eventos não devem ser registrados.
ToolPath (String): Você pode especificar o caminho para a ferramenta.
ToolPlatform (ToolPlatform): Você pode especificar a plataforma para a ferramenta. Especificar Microsoft.TeamFoundation.Build.Workflow.Activities.ToolPlatform.Auto para detectar a plataforma com base no sistema operacional atual.
Verbosity (BuildVerbosity): Você pode especificar a verbosidade do log que MSBuild gera.
Para obter mais informações sobre muitos MSBuild de opções que o MSBuild Propriedades afetam, consulte Referência de linha de comando do MSBuild.
Voltar ao topo
Executar testes (MSTest atividade)
Usar essa atividade para executar testes usando MSTest.exe.
Propriedades de núcleo MSTest
Para começar, decida como você deseja executar os testes e, em seguida, especifique valores para as propriedades adequadas.
Para executar testes em contêiners de teste (a abordagem recomendada), use as seguintes propriedades:
TestContainers (IEnumerable<String>): Você deve especificar os contêineres de teste dos testes que você deseja executar. Esta propriedade é equivalente a /testcontainer opção do MSTest.exe comando. Para obter mais informações, consulte MSTest.exe Command-Line Options (/testcontainer).
SearchPathRoot (String): Você pode especificar a raiz do caminho para o diretório no qual procurar contêiners de teste e suas dependências. Se você não especificar um valor de MSTest atividade tentará localizar os arquivos em locais típicos.
TestSettings (String): Você pode especificar um arquivo de configuração para usar de execução de teste. Esta propriedade é equivalente a /testsettings a opção do MSTest.exe comando. Para obter mais informações, consulte MSTest.exe Command-Line Options (/testsettings).
Para executar testes em listas de teste, use as seguintes propriedades:
TestLists (IEnumerable<String>): Você deve especificar as listas de teste que você deseja executar. Esta propriedade é equivalente a /testlist opção do MSTest.exe comando. Para obter mais informações, consulte MSTest.exe Command-Line Options (/testlist) e Listas de definição de teste para agrupar os testes.
TestMetadata (String): Você deve especificar o arquivo de metadados que contém o teste de lista que você deseja executar. Esta propriedade é equivalente a /testmetadata opção do MSTest.exe comando. Para obter mais informações, consulte MSTest.exe Command-Line Options (/testmetadata).
Propriedades de filtragem MSTest
Você pode usar as propriedades a seguir para filtrar quais testes são executados:
Category (String): Você pode filtrar os testes com base em suas categorias de teste. Esta propriedade é equivalente a /category opção do MSTest.exe comando. Para obter mais informações, consulte MSTest.exe Command-Line Options (/category) e Definindo categorias de teste para agrupar os testes.
MaxPriority (Int32): Você pode especificar a prioridade máxima de testes que você deseja executar. Somente testes cuja prioridade é que menor ou igual a este valor será executado. Você deve especificar um número inteiro positivo que seja maior ou igual a MinPriority propriedade ou você deve especificar -1 se não desejar especificar uma prioridade máxima.
Dica
Se você tiver atribuído prioridades para os testes, o MinPriority e MaxPriority propriedades podem ser um importante mecanismo para ajudá-lo a definir um equilíbrio entre um teste completo e compilações mais rápidas.
MinPriority (Int32): Você pode especificar a prioridade mínima de testes que você deseja executar. Somente os testes cuja prioridade é maior ou igual a este valor serão executado. Você deve especificar um número inteiro positivo que seja igual ou menor que o MaxPriority propriedade ou você deve especificar -1 se não desejar especificar uma prioridade mínima.
TestNames (IEnumerable<String>): Você pode especificar os nomes dos testes que você deseja executar. Esta propriedade é equivalente a /test opção do MSTest.exe comando. Para obter mais informações, consulte MSTest.exe Command-Line Options (/test).
Propriedades de publicação MSTest
Você pode usar as propriedades a seguir para publicar os resultados de teste para o data warehouse:
Publish (Boolean): Você deve definir essa propriedade True se você deseja publicar os resultados de teste.
Flavor (String): Você pode especificar o tipo da compilação no qual executou os testes cujos resultados você deseja publicar. Esta propriedade é equivalente a /flavor opção do MSTest.exe comando. Para obter mais informações, consulte Opções de Linha de Comando para Publicação dos Resultados de Testes.
Platform (String): Você pode especificar a plataforma da compilação no qual executou os testes cujos resultados você deseja publicar. Esta propriedade é equivalente a /platform opção do MSTest.exe comando. Para obter mais informações, consulte Opções de Linha de Comando para Publicação dos Resultados de Testes.
TestConfigId (Int32): Você pode especificar a identificação de uma configuração existente de gerenciamento de teste para associar o teste executar cujos resultados você deseja publicar. Esta propriedade é equivalente a /testconfigid opção do MSTest.exe comando. Para obter mais informações, execute MSTest /? com o Visual Studio o prompt de comando.
TestConfigName (String): Você pode especificar o nome de uma configuração existente de gerenciamento de teste para associar o teste executar cujos resultados você deseja publicar. Esta propriedade é equivalente a /testconfigname opção do MSTest.exe comando. Para obter mais informações, execute MSTest /? com o Visual Studio o prompt de comando.
MSTest outras propriedades.
CommandLineArguments (String): Para obter informações sobre as opções de linha de comando adicionais que você pode especificar, consulte Opções da Linha de Comando MSTest.exe.
PathToResultsFilesRoot (String): Você pode especificar a raiz do caminho para o diretório em que o agente de compilação onde MSTest.exe coloca os resultados (arquivos. trx).
ToolPath (String): Você pode especificar o caminho para o diretório que contém a versão do MSTest.exe que você deseja executar. Se você não especificar um caminho, Team Foundation Build determina automaticamente o caminho com base nos dados de suas listas de testes ou testar recipientes.
Voltar ao topo
Obter uma lista de testes para que a compilação afeta (atividade de GetImpactedTests)
Use o GetImpactedTests a atividade para identificar alterações de código na compilação atual e produzir uma lista de testes que são afetadas por essas alterações. A atividade grava a lista de testes afetados para o data warehouse para ajudar a determinar quais testes devem executar após esta compilação de membros da equipe de teste. Para obter mais informações sobre como sua equipe pode usar esses dados, consulte Recomendações de testes para executar o que são afetadas pelas alterações de código.
Observação |
---|
Essa atividade não tem efeito em compilações de check-in gated ou compilações particulares. |
Condições necessárias
O GetImpactedTests atividade pode funcionar somente quando as seguintes condições forem verdadeiras:
O MSTest atividade foi executada com um arquivo de configurações de teste (especificado na TestSettings propriedade) que coleta os dados de impacto de teste. Você pode usar o Traceandtestimpact.testsettings arquivo, que é gerado automaticamente, ou você pode usar outro arquivo de configurações de teste no qual o Teste de impacto caixa de seleção está marcada. Para obter mais informações, consulte Como: Coletar dados para verificar quais testes devem ser executados após alterações de código.
O GetImpactedTests atividade identificou compilação anterior. Para mais informações, veja a próxima seção.
Como a atividade GetImpactedTests identifica a compilação anterior
O GetImpactedTests atividade produz seus resultados comparando a compilação atual para o build anterior. A atividade identifica a compilação anterior usando o seguinte processo:
Se você especificar o BaselineBuildDropLocation propriedade, a compilação que geraram esses binários é identificada como a compilação anterior.
Se você não especificar o BaselineBuildDropLocation propriedade, a atividade que identifica a compilação anterior pesquisando no armazém de dados para a compilação mais recente que corresponde a todos os critérios a seguintes:
A compilação tem o mesmo BuildDefinitionUri como a compilação atual.
O Status da compilação é Succeeded ou PartiallySucceeded.
A compilação tem um DropLocation.
A compilação não é uma compilação gated check-in ou uma compilação particular.
Propriedades de resultado de GetImpactedTests
CodeChanges (CodeChangeList): Retorna uma lista das alterações que foram feitas em cada método no seu código entre esta compilação e a compilação anterior. Os métodos são analisados no nível Microsoft intermediate language (MSIL).
ImpactedTests (TestList): Retorna uma lista de testes que foram afetadas pelas alterações de código entre a compilação anterior e esta compilação.
GetImpactedTests Propriedades do argumento
Miscelânea
- Criar: Você deve fornecer o IBuildDetail o objeto da compilação. Você pode usar o GetBuildDetail a atividade para obter uma referência a este objeto.
Diversos
Assemblies (IEnumerable<String>): Você deve especificar uma lista de módulos (assemblies) que você deseja que essa atividade para examinar. Normalmente, você criou esses assemblies nesta compilação.
AssociatedChangesets (IList<T><Changeset>): Você pode especificar que conjuntos de alterações que você deseja associar aos resultados do teste de impacto. Normalmente, você deseja especificar conjuntos de alterações que você está criando. Você pode obter uma referência a esses conjuntos de alterações a partir de AssociateChangesetsAndWorkItems atividade.
BinariesRoot (String): Você deve especificar o caminho para os binários que dependem do seus assemblies. Você pode obter esse valor usando o GetBuildDirectory atividade.
Workspace (Workspace): Você deve fornecer uma referência ao espaço de trabalho da sua compilação. Você pode obter essa referência a partir do resultado propriedade da CreateWorkspace atividade.
BaselineBuildDropLocation (String): Você pode especificar o caminho para a pasta de recebimento que contém a compilação concluída, você deseja que o GetImpactedTests a atividade para comparar com a compilação atual. Se você não especificar esta propriedade, a atividade tenta consultar o sistema de compilação a compilação anterior. Para obter mais informações, consulte "Como o GetImpactedTests atividade identifica o anterior Build" anteriormente nesta seção.
Voltar ao topo
Iniciar um processo (InvokeProcess de atividade)
Use o InvokeProcess a atividade para iniciar um processo (executar um programa) no servidor de compilação. Esta atividade é essencialmente um wrapper sobre Start.
O resultado de InvokeProcess (Int32) propriedade
Retorna o ExitCode do processo.
Propriedades do argumento de InvokeProcess
FileName (String): Você deve especificar o FileName do processo que você deseja iniciar (o programa que você deseja executar). Por exemplo: %ProgramFiles%\ContosoBuildUtils\MarkBins.exe.
Arguments (String): Você pode especificar argumentos de linha de comando (Arguments) que você deseja passar para o processo.
EnvironmentVariables(IDictionary<TKey, TValue><String,String>): Você pode especificar variáveis de ambiente adicionais (EnvironmentVariables) e seus valores.
OutputEncoding (Encoding): Você pode especificar a codificação é usada para ler a saída (StandardOutputEncoding) e o erro (RedirectStandardError) fluxos. Em muitos casos, o valor padrão é o melhor valor para essa propriedade:
System.Text.Encoding.GetEncoding(System.Globalization.CultureInfo.InstalledUICulture.TextInfo.OEMCodePage)
WorkingDirectory (String): Você pode especificar o diretório de trabalho (WorkingDirectory) no qual você deseja executar o processo.
Por exemplo, convém executar o MarkBins.exe o utilitário contra binários compilados. Para restringir o escopo no qual o utilitário é executado, você poderia chamar GetBuildDirectory e coloca o resultado nesta propriedade.
Para exibir a saída de saída e de erro padrão do processo
No InvokeProcess atividade, clique duas vezes em duas vezes para exibir.
Arraste um WriteBuildMessage atividade na caixa de ferramentas para que a atividade aparece sob Tratar a saída padrãoe defina a WriteBuildMessage mensagem propriedade para stdOutput.
Arrastar um WriteBuildError atividade a partir de Toolbox para que ele apareça em Tratar a saída padrãoe defina a WriteBuildMessage mensagem propriedade para errOutput.
Trabalhar com controle de versão
Você pode usar Team Foundation Build tarefas de controle de atividades para executar a seguinte versão:
Associar os conjuntos de alterações e itens com a criação de trabalho
Fazer check-in gated alterações
Avaliar as diretivas de check-in
Arquivos de etiquetas no controle de versão
Associar os conjuntos de alterações e itens de trabalho uma compilação (AssociateChangesetsAndWorkItems de atividade)
Use o AssociateChangesetsAndWorkItems a atividade para vincular cada compilação concluída com todos os conjuntos de alterações que acompanhou o código e seus itens de trabalho associados.
Cada definição de compilação mantém seu próprio registro de quais conjuntos de alterações e o trabalho itens estiverem aguardando para ser associado com a próxima compilação concluída. Por exemplo, A de compilação e a construir b podem construir changeset 382. Build a será enfileirada e concluída com êxito, mas criar b está na fila e falhar. Changeset 382 está agora vinculado com a compilação concluída com êxito um e com falha b de compilação. Changeset 382 não serão vinculadas com a próxima compilação concluída da compilação, mas será vinculado com a próxima compilação concluída com êxito do b de compilação.
O resultado de AssociateChangesetsAndWorkItems (IList<T><Changeset>) propriedade
Retorna os conjuntos de alterações que foram associados com a compilação.
Propriedades do argumento de AssociateChangesetsAndWorkItems
CurrentLabel (String): Deixe vazia essa propriedade.
LastLabel (String): Deixe vazia essa propriedade.
UpdateWorkItems (Boolean): Você pode definir o valor dessa propriedade para True se você deseja preencher o Fixa na campo dos itens de trabalho associado com o número de compilação. Caso contrário, defina o valor para False.
Voltar ao topo
Fazer check-in de alterações gated (atividade de CheckInGatedChanges)
Use o CheckInGatedChanges a atividade de check-in para controle de versão as alterações de código que disparou um gated check-in build. Esta atividade também associa a compilação os itens de trabalho que estão associados com os conjuntos de alterações.
Observação |
---|
Para funcionar corretamente, essa atividade deve ser colocada depois de todas as implementações da MSBuild e MSTest atividades no modelo. |
O resultado de CheckInGatedChanges (Changeset) propriedade
Retorna o conjunto de alterações que contém as alterações que estão sendo verificadas no.
Propriedades do argumento de CheckInGatedChanges
IgnoreErrors (Boolean): Defina esta propriedade como False para permitir que os arquivos a serem verificados em somente se a CompilationStatus e TestStatus Propriedades ambos têm um valor de Succeeded. Definir essa propriedade True para permitir que arquivos fazer check-in, independentemente dos valores dessas propriedades.
Observação Você pode usar o SetBuildProperties a atividade para definir o CompilationStatus e o TestStatus Propriedades.
UpdateWorkItems (String): Defina esse valor como True se você deseja preencher o Fixa na campo dos itens de trabalho associado com o número de compilação. Caso contrário, defina-o como False.
Voltar ao topo
Avaliar as diretivas de check-in (EvaluateCheckInPolicies de atividade)
Use o EvaluateCheckInPolicies a atividade para executar as políticas de check-in no servidor de compilação. Esta atividade executa as diretivas de check-in que estão em vigor para pastas que são especificados no espaço de trabalho guia de definição de compilação. A construção falhar se as diretivas de check-in falharem e o motivo para a compilação é CheckInShelveset (um gated check-in build) ou ValidateShelveset (uma compilação particular).
Importante |
---|
As diretivas de check-in são avaliadas no servidor de compilação, não no computador do cliente do desenvolvedor. |
O uso mais efetivo desta atividade é impor mais fortes gates de qualidade usando-o com o gated compilações de check-in. Se você usar a atividade dessa forma, o usuário está bloqueado contornem as diretivas de check-in. Esta atividade é mais útil para os seguintes tipos de diretivas de check-in:
Interno Work Items check-in de diretiva
Check-in diretivas personalizadas que são projetadas para serem avaliados no servidor de compilação
Essa atividade não é útil para avaliar interno Builds, Code Analysis, ou Testing Policy check-in de diretivas porque você pode executar com mais eficiência os processos em uma compilação diretamente, usando MSBuild e MSTest atividades.
Para obter mais informações, consulte os seguintes recursos:
Para obter informações sobre as diretivas de check-in internas, consulte Adicionar diretivas de Check-In.
Para obter informações sobre as diretivas de check-in personalizadas, consulte como: Criar diretivas de Check-in personalizado no Visual Studio do Team Foundation Server.
Para obter informações sobre gated compilações de check-in, consulteDefinir uma compilação Gated Check-In para validar as alterações
Para obter informações sobre as compilações privadas, consulteUma compilação de fila
Propriedades do argumento de EvaluateCheckInPolicies
- Workspace (Workspace): Você deve especificar o espaço de trabalho que você deseja avaliar. Na maioria dos casos, você deve definir essa propriedade para a variável que você inicializar no resultado propriedade da CreateWorkspace atividade. Se você estiver criando um processo de compilação se baseia em DefaultTemplate.xaml, provavelmente, você deve usar o Workspace variável.
Voltar ao topo
Arquivos de etiquetas no controle de versão
Você pode rotular arquivos usando Team Foundation Build atividades:
Rotular o código-fonte que você está construindo
Arquivos de etiquetas
Rotular o código-fonte que você esteja criando (LabelWorkspace de atividade)
Para que sua equipe possa identificar facilmente qual versão de cada arquivo é incluído em uma determinada compilação de concluído, você deve rotular arquivos de código-fonte no controle de versão. Use o LabelWorkspace a atividade para incluir essa etapa no processo de compilação.
Propriedades do argumento de LabelWorkspace
Name (String): Você deve especificar o nome da etiqueta.
Child (LabelChildOption): Você pode especificar como lidar com os itens que já possuem rótulos que corresponder ao rótulo especificado. Esta propriedade é equivalente a /child a opção do tf label comando.
Workspace (Workspace): Você deve fornecer uma referência ao espaço de trabalho dessa compilação. Na maioria dos casos, você deve definir essa propriedade para a variável que você inicializar no resultado propriedade da CreateWorkspace atividade. Se você estiver criando um processo de compilação se baseia em DefaultTemplate.xaml, provavelmente, você deve usar o Workspace variável.
Comment (String): Você pode especificar um comentário para o rótulo. Esta propriedade é equivalente a /comment opção do tf label comando.
Scope (String): Você pode especificar um escopo para o rótulo. Esta propriedade é equivalente à @scope argumento o tf label comando.
Para obter mais informações sobre tf label parâmetros, consulte Comando Label (Team Foundation Version Control).
Voltar ao topo
Arquivos de etiquetas (atividade de LabelSources)
Use o LabelSources a atividade de arquivos de etiquetas no controle de versão.
Dica
Freqüentemente você pode rotular a fonte de arquivos de código que você está construindo mais eficiente se você usar o LabelWorkspace atividade.
Propriedades do argumento de LabelSources
Items (IEnumerable<String>): Você deve especificar os itens que você deseja rotular. Cada String é equivalente a uma itemspec argumento o tf label comando.
Name (String): Você deve especificar o nome da etiqueta.
Scope (String): Você deve especificar um escopo para o rótulo. Esta propriedade é equivalente à @scope argumento o tf label comando.
Recursion (RecursionType): Você pode especificar Microsoft.TeamFoundation.VersionControl.Client.RecursionType.Full se você deseja rotular todos os arquivos em uma hierarquia de diretório. Caso contrário, você pode especificar Microsoft.TeamFoundation.VersionControl.Client.RecursionType.OneLevel.
Version (String): Você deve fornecer a versão dos itens que você deseja rotular. Esta propriedade é equivalente a /version opção do tf label comando.
Child (LabelChildOption): Você pode especificar como lidar com os itens que já possuem rótulos que corresponder ao rótulo que você especificou. Esta propriedade é equivalente a /child a opção do tf label comando.
Comment (String): Você pode especificar um comentário para o rótulo. Esta propriedade é equivalente a /comment opção do tf label comando.
Para obter mais informações sobre tf label parâmetros, consulte Comando Label (Team Foundation Version Control).
Voltar ao topo
Trabalhar com itens de trabalho
Você pode trabalhar com itens de trabalho usando Team Foundation Build atividades:
Associar os conjuntos de alterações e itens com a criação de trabalho
Criar um item de trabalho
Criar um Item de trabalho (OpenWorkItem de atividade)
Use o OpenWorkItem a atividade para criar um item de trabalho.
O resultado de OpenWorkItem (WorkItem) propriedade
Retorna o novo item de trabalho.
Propriedades do argumento de OpenWorkItem
AssignedTo (String): Você deve especificar a pessoa a quem deseja atribuir o item de trabalho.
Title (String): Você deve especificar o título do item de trabalho.
Type (String): Você deve especificar o tipo de item de trabalho. Típica tipo de os valores incluem os exemplos a seguir: “Bug”, “Issue”, and “Task”.
Comment (String): Você pode adicionar um comentário no histórico do item de trabalho.
CustomFields (IDictionary<TKey, TValue><String,String>): Você pode especificar o valor de um ou mais campos do item de trabalho.
Voltar ao topo
Trabalhar com dados de símbolo
Você pode trabalhar com dados de símbolo usando duas Team Foundation Build atividades: IndexSources e PublishSymbols.
Um uso típico dessas atividades é habilitar a depuração de IntelliTrace. Se você deseja ativar a depuração de IntelliTrace, primeiro você deve chamar o IndexSources atividade para preparar os dados de símbolo e, em seguida, você deve chamar o PublishSymbols atividade para publicar os dados em um armazenamento de símbolo de SymStore.
Para obter mais informações sobre depuração de IntelliTrace, consulte Depuração com IntelliTrace.
Incorporar os caminhos de controle de versão e versões os dados de símbolo em seus arquivos de PDB (atividade de IndexSources)
Use o IndexSources a atividade para incorporar os caminhos de controle de versão e versões dos dados de símbolo em seus arquivos. PDB.
Propriedades do argumento de IndexSources
FileList (IEnumerable<String>): Você deve especificar o caminho completo e o nome de cada arquivo de símbolo. Você pode usar o FindMatchingFiles a atividade para fornecer esse argumento.
Você pode usar ** para especificar uma pesquisa recursiva. Por exemplo, você poderia chamar FindMatchingFiles com o seguinte valor de MatchPattern propriedade: String.Format("{0}\**\*.pdb", BinariesDirectory).
Voltar ao topo
Publicar os símbolos para um armazenamento de símbolo de SymStore (PublishSymbols de atividade)
Use o PublishSymbols a atividade para publicar os dados de símbolo nos arquivos PDB para um armazenamento de símbolo de SymStore. Esta atividade é essencialmente um wrapper sobre SymStore.exe.
Importante |
---|
Dados podem ser corrompidos se a tentativa de compilações simultâneas publicar o mesmo compartilhamento de arquivos de símbolos. Para reduzir esse risco, você deve chamar essa atividade apenas dentro um SharedResourceScope atividade. |
Preparar o seu armazenamento de símbolo de SymStore
Antes de usar o PublishSymbols atividade, você primeiro precisa preparar um armazenamento de símbolo de SymStore:
Configure uma pasta para armazenar os símbolos em um servidor de compartilhamento de arquivos.
Grant Controle total as permissões para o usuário conta com que o agente de compilação está sendo executado.
Para obter mais informações sobre o armazenamento de símbolo de SymStore, consulte os tópicos a seguir no site da Microsoft:
O resultado de PublishSymbols (String) propriedade
Retorna a ID de transação que SymStore.exe retorna.
Propriedades do argumento de PublishSymbols
FileList (IEnumerable<String>): Você deve especificar o caminho completo e o nome de cada arquivo de símbolo. Você pode usar o FindMatchingFiles a atividade para fornecer esse argumento.
Por exemplo, você poderia chamar FindMatchingFiles com o seguinte valor de MatchPattern propriedade: String.Format("{0}\**\*.pdb", BinariesDirectory).
StorePath (String): Você deve especificar o caminho UNC do arquivo para a pasta raiz de armazenamento de símbolo de SymStore.
CommandLineArguments (String): Para obter informações sobre os argumentos adicionais que você pode passar para SymStore.exe, consulte Opções de linha de comando SymStore.
Comments (String): Você pode especificar os comentários da transação são registrados no arquivo de histórico de transações no armazenamento de símbolo. Esta propriedade é equivalente a /c Comment parâmetro da SymStore.exe comando. Para obter mais informações, consulte Opções de linha de comando SymStore.
ProductName (String): Você pode especificar o nome do produto é gravado no arquivo de histórico de transações no armazenamento de símbolo. Por exemplo, você pode definir essa propriedade para o nome da definição de compilação (Name), que pode ser obtido na BuildDefinition propriedade chamando GetBuildDetail. Esta propriedade é equivalente a /t Product parâmetro da SymStore.exe comando. Para obter mais informações, consulte Opções de linha de comando SymStore.
StoreCompressed (Boolean): Você pode definir esse valor como True para armazenar arquivos no armazenamento de símbolo, como arquivos compactados. Caso contrário, serão armazenados os arquivos descompactados. Esta propriedade é equivalente a /compress parâmetro da SymStore.exe comando. Para obter mais informações, consulte Opções de linha de comando SymStore.
Version (String): Por exemplo, você pode definir essa propriedade para o número de compilação (BuildNumber) que pode ser obtido chamando GetBuildDetail. Esta propriedade é equivalente a /v Version parâmetro da SymStore.exe comando. Para obter mais informações, consulte Opções de linha de comando SymStore.
Voltar ao topo
Obter referências a objetos úteis
Você pode obter referências a objetos úteis usando Team Foundation Build atividades.
Obtenha uma referência ao objeto para uma coleção de projeto de equipe (GetTeamProjectCollection de atividade)
Uso o GetTeamProjectCollection obter, a atividade do seu resultado propriedade, uma referência a um TfsTeamProjectCollection objeto. Este objeto starter é importante; Por exemplo, você pode usá-lo para se conectar a um servidor de camada de aplicativo para Team Foundation.
Obtenha uma referência ao objeto IBuildAgent (GetBuildAgent de atividade)
Uso o GetBuildAgent atividade para obter, do seu resultado propriedade, uma referência para o IBuildAgent objeto. Você pode usar essa atividade apenas em um AgentScope atividade.
Obtenha uma referência ao objeto IBuildDetail (GetBuildDetail de atividade)
Uso o GetBuildDetail atividade para obter, do seu resultado propriedade, uma referência para o IBuildDetail objeto. Você pode usar esse objeto para obter e em alguns casos, definir, dados sobre a compilação atual.
Voltar ao topo
Obtenha uma referência ao objeto BuildEnvironment (GetBuildEnvironment de atividade)
Use o GetBuildEnvironment atividade para obter, por meio sua resultado propriedade, uma referência para o BuildEnvironment objeto. Normalmente você pode usar essa propriedade para realizar as seguintes tarefas:
Use o Environment o objeto para determinar se o segmento atual do fluxo de trabalho está em execução no controlador de compilação ou o agente de compilação.
Use o CustomAssemblyPath o objeto para obter o caminho para os assemblies que contêm as atividades personalizadas no agente de compilação.
Voltar ao topo
Processo de compilação de atividades que não são destinadas a reutilização em um personalizado
Algumas atividades não são destinadas ao uso em um processo de compilação personalizada.
TfsBuild atividade
Ignore esta atividade. Ele existe somente para uso em UpgradeTemplate.xaml. Essa atividade não se destina a reutilização em um processo de compilação personalizada.
Atividade de CreateWorkspace
Você provavelmente nunca precisará criar ou modificar uma instância de CreateWorkspace atividade. Se você estiver criando um processo de compilação que requer um ou mais espaços de trabalho adicionais, você deve criar uma atividade personalizada para atingir essa meta.
Outras atividades do espaço de trabalho
Seu modelo de processo de compilação pode usar essas atividades da mesma maneira que o DefaultTemplatate.xaml os usa. Mas, a menos que você desenvolver uma atividade personalizada para criar um espaço de trabalho, você provavelmente nunca precisará criar ou modificar uma instância de um espaço de trabalho do seu modelo de processo de compilação personalizada.
DeleteWorkspace
Voltar ao topo
GetWorkspace
Voltar ao topo
RevertWorkspace
Voltar ao topo
SyncWorkspace
Voltar ao topo
Consulte também
Tarefas
Criar e trabalhar com os agentes de compilação
Exibir a janela de resultados de compilação
Conceitos
Definir uma compilação usando o modelo padrão
Criar e trabalhar com um controlador de compilação