Usar e desenvolver atividades do processo de compilação personalizado

"Hello World" de uma atividade C-Sharp

Depois de criar um modelo de processo de compilação personalizado, você poderá implementar a própria lógica de negócios usando instruções do Windows Workflow e as atividades internas TFBuild (Team Foundation Build). Se essas ferramentas não forem suficientes, será possível usar atividades de terceiros ou, se necessário, implementar o próprio código do .NET Framework em um CodeActivity.

Dica

Se a funcionalidade do processo de compilação personalizada puder ser codificada em um arquivo em lotes do Windows ou em um script do PowerShell, será possível carregar o script e executá-lo como parte do processo de compilação.Essa abordagem pode ser mais rápida e mais simples do que a criação de um processo de compilação personalizado.Consulte Executar um script em seu processo de compilação.

  • Criar uma atividade de processo de compilação personalizada

  • Editar o modelo de processo de compilação

  • Carregar o processo de compilação personalizado

    • Ícone TFVC Carregar e habilitar o processo de compilação personalizado em um projeto da equipe TFVC

    • Ícone de Git Carregar e habilitar o processo de compilação personalizado em um projeto da equipe Git

  • Habilitar o processo de compilação personalizado

  • Executar a compilação

  • Perguntas e respostas

"Hello World" no resumo da compilação

Criar uma atividade de processo de compilação personalizada

Importante

Antes de começar, obtenha uma cópia do modelo e a coloque em um projeto de código.Se você ainda não tiver feito isso, aqui está como fazê-lo.

Você deve desenvolver a atividade do processo de compilação na mesma solução dos modelos do processo de compilação.Trabalhando-se dessa forma, quando precisar usar uma das atividades no modelo de processo, a atividade estará disponível na caixa de ferramentas do designer do fluxo de trabalho.Porém, você deve manter o código-fonte das atividades em um projeto de código separado daquele que contém os modelos de processo da compilação.

  1. Adicione um novo projeto de código do C# ou do Visual Basic à solução que contém o projeto de código do modelo do processo de compilação.

    Novo projeto para a solução de BuildProcessSource

    Novo projeto

  2. Adicione as seguintes referências ao novo projeto de código:

    Como posso adicionar essas referências ao projeto de código?

    Salve o projeto de código.

  3. Adicione uma nova atividade ao projeto.

    Novo Item de projeto de código de origem

    Adicionar Novo Item

  4. Implemente o CodeActivity Por exemplo, Hello.cs:

    using System;
    using System.Collections.Generic;
    using System.Linq;
    using System.Text;
    using System.Activities;
    using Microsoft.TeamFoundation.Build.Workflow.Activities;
    using Microsoft.TeamFoundation.Build.Client;
    using Microsoft.TeamFoundation.Build.Workflow.Tracking;
    
    namespace BuildProcessSource
    {
        // enable the build process template to load the activity
        [BuildActivity(HostEnvironmentOption.All)]
        // keep the internal activity operations from appearing in the log
        [ActivityTracking(ActivityTrackingOption.ActivityOnly)]
        public sealed class Hello : CodeActivity
        {
            // Define an activity input argument of type string
            public InArgument<string> SayHelloTo { get; set; }
    
            // If your activity returns a value, derive from CodeActivity<TResult>
            // and return the value from the Execute method.
            protected override void Execute(CodeActivityContext context)
            {
                // Obtain the runtime value of the Text input argument
                string text = context.GetValue(this.SayHelloTo);
    
                // Add our default value if we did not get one
                if (text == null || text == "")
                {
                    text = "World";
                }
    
                // Write the message to the log
                context.TrackBuildWarning("Hello " + text, BuildMessageImportance.High);
            }
        }
    }
    

    Como não precisa do arquivo Activity1.xaml, você poderá excluí-lo se quiser.

  5. Compilar a solução no Visual Studio (teclado: CTRL + SHIFT + B).

Quando você terminar, a solução deverá ser semelhante a esta:

Exemplo de uma solução do processo de compilação personalizada

Editar o modelo de processo de compilação

Com base na solução, edite o modelo do processo de compilação arrastando atividades para ele. Depois que a atividade for adicionada ao modelo, defina suas propriedades (teclado: F4).

Editando um modelo de processo de compilação de uma solução

Quando você terminar, salve o modelo.

Carregar o processo de compilação personalizado

Para definir uma compilação que use o modelo do processo de compilação personalizado e a atividade, você deve carregar e habilitá-los.

  • Ícone TFVC Carregar e habilitar o processo de compilação personalizado em um projeto da equipe TFVC

  • Ícone de Git Carregar e habilitar o processo de compilação personalizado em um projeto da equipe Git

Carregar o processo de compilação personalizado em um projeto da equipe TFVC

Em um Ícone TFVC projeto da equipe TFVC:

  1. Verifique se você compilou a solução (teclado CTRL + SHIFT + B).

  2. Conecte-se (teclado: CTRL + 0, C) ao projeto da equipe onde você pretende armazenar a origem do processo de compilação.

  3. No Gerenciador do Controle do Código-Fonte, adicione itens à pasta que contém o projeto de código da atividade.

    Gerenciador de controle do código-fonte

  4. Navegue até a pasta que contém o arquivo .dll e selecione-o. Por exemplo, C:\Users\YourName\Source\Workspaces\FabrikamTFVC\BuildProcessTemplates\BuildProcessSource\Source\bin\Debug.

    Adicionar o binário do processo de compilação para controle de versão do TFVC

  5. Conclua o processo para adicionar o arquivo.

    Adicionar o binário do processo de compilação para controle de versão do TFVC

  6. Fazer check-in das alterações.

    Alterações pendentes

Carregar o processo de compilação personalizado em um projeto da equipe Git

Em um Ícone de Git projeto da equipe Git:

  1. Importante:

    • O armazenamento de binários (especialmente muitas revisões em arquivos grandes) pode aumentar o tamanho do repositório Git. Recomendamos que você armazene os binários de processo da compilação personalizados em um repositório separado do código a partir do qual você compila seu aplicativo. É possível criar um projeto separado do projeto da equipe com essa finalidade ou criar um repositório adicional no projeto da equipe existente.

    • Você deve armazenar os binários em uma subpasta no repositório Git. Se tentar usar binários na pasta raiz, você talvez possa ser bloqueado por uma mensagem de erro ramificação git não encontrada.

  2. Verifique se você compilou a solução (teclado CTRL + SHIFT + B).

  3. Conecte-se (teclado: CTRL + 0, C) ao projeto da equipe onde você pretende armazenar a origem do processo de compilação.

  4. Abra o prompt de comando Git.

    Abra um Prompt de comando na página alterações

    P: Não consigo abrir o prompt de comando. O que devo fazer? R: Habilite o prompt de comando Git.

  5. Use o prompt de comando Git para adicionar o arquivo .dll. Por exemplo:

    cd c:\users\YourName\source\repos\BuildProcesses\BuildProcessSource\Source\bin\Debug
    
    git add Source.dll -f
    
  6. Confirme as alterações.

    Confirmar botão na página alterações

  7. Sincronize ou envie a confirmação.

    Link de sincronização na página alterações

    Botão de sincronização e o link de envio na página de confirmações não sincronizadas

Habilitar o processo de compilação personalizado

Para executar o processo de compilação personalizado, você deve apontar o controlador de compilação para os binários carregados no TFS e selecionar o modelo de processo de compilação na definição de compilação.

  1. Na página Compilações (teclado: Ctrl + 0, B), selecione Ações e, em seguida, escolha Gerenciar Controladores de Compilação.

  2. Na caixa de diálogo Gerenciar Controladores de Compilação, realce o controlador que você usará para executar esse processo de compilação e, em seguida, escolha Propriedades.

    Caixa de diálogo gerenciar controladores de compilação

  3. Especifique o caminho de controle da versão para assemblies personalizados.

    Caixa de diálogo Propriedades do controlador de compilação

    Captura de tela de VisualStudioEllipsesButton Procure uma pasta que seja um ancestral da pasta onde você carregou o processo de compilação nas etapas anteriores.

    • Ícone TFVC Exemplo de TFVC: $/FabrikamTFVC/BuildProcessTemplates/BuildProcessSource/Source/bin/Debug

    • Ícone de Git Exemplo de Git: BuildProcessSource/Source/Bin/Debug

      Caixa de diálogo mostrando valores gito procurar

      O sistema converte automaticamente o valor inserido em um caminho vstfs. Por exemplo: vstfs:///Git/VersionedItem/FabrikamGit/BuildProcesses/master/BuildProcessSource/Source/Bin/Debug.

      Caminho de controle de versão para assemblies personalizados

  4. Se você ainda não tiver feito isso, crie ou modifique uma definição de compilação e selecione o modelo do processo de compilação personalizado.

    Criar definição de modelo de processo personalizado

Executar a compilação

Enfileire a compilação. O resultado deve ser semelhante a:

"Hello World" no resumo da compilação

Perguntas e respostas

P: Fui bloqueado pelo sistema porque não tenho permissão.Como posso consegui-la?

R: Referência de permissões para o Team Foundation Server

P: Como adiciono as referências com as quais preciso trabalhar usando o fluxo de trabalho TFBuild?

R: Use o gerenciador de referências para adicionar referências a

Exiba as referências do projeto de código e abra o gerenciador de referências.

Menu de contexto Reerences

Caixa de diálogo Gerenciador de referências

Navegue até C:\Program Files (x86)\Microsoft Visual Studio 12.0\Common7\IDE\ReferenceAssemblies\v2.0, selecione e adicione:

Selecione os arquivos para fazer referência a caixa de diálogo

Caixa de diálogo Gerenciador de referências

P: O que está causando erros em meu processo de compilação personalizado?

R: Algumas causas comuns de erros.

P: O que é o Windows Workflow Foundation?Como o uso?

A: Windows Workflow Foundation.

P: Onde posso saber mais sobre as atividades internas?

R: Atividades do Team Foundation Build

P: Onde posso obter modelos do processo de compilação, atividades de fluxo de trabalho e scripts?

A: Community TFS Build Extensions

P: Onde posso saber mais sobre como desenvolver processos de compilação personalizados?

A: Curated answer: Customize your Team Foundation Build process