Usar e desenvolver atividades do processo de compilação personalizado
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
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.
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.
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.
Adicione uma nova atividade ao projeto.
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.
Compilar a solução no Visual Studio (teclado: CTRL + SHIFT + B).
Quando você terminar, a solução deverá ser semelhante a esta:
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).
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.
Carregar e habilitar o processo de compilação personalizado em um projeto da equipe TFVC
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 projeto da equipe TFVC:
Verifique se você compilou a solução (teclado CTRL + SHIFT + B).
Conecte-se (teclado: CTRL + 0, C) ao projeto da equipe onde você pretende armazenar a origem do processo de compilação.
No Gerenciador do Controle do Código-Fonte, adicione itens à pasta que contém o projeto de código da atividade.
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.
Conclua o processo para adicionar o arquivo.
Fazer check-in das alterações.
Carregar o processo de compilação personalizado em um projeto da equipe Git
Em um projeto da equipe Git:
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.
Verifique se você compilou a solução (teclado CTRL + SHIFT + B).
Conecte-se (teclado: CTRL + 0, C) ao projeto da equipe onde você pretende armazenar a origem do processo de compilação.
Abra o prompt de comando Git.
P: Não consigo abrir o prompt de comando. O que devo fazer? R: Habilite o prompt de comando Git.
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
Confirme as alterações.
Sincronize ou envie a confirmação.
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.
Na página Compilações (teclado: Ctrl + 0, B), selecione Ações e, em seguida, escolha Gerenciar Controladores de Compilação.
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.
Especifique o caminho de controle da versão para assemblies personalizados.
Procure uma pasta que seja um ancestral da pasta onde você carregou o processo de compilação nas etapas anteriores.
Exemplo de TFVC: $/FabrikamTFVC/BuildProcessTemplates/BuildProcessSource/Source/bin/Debug
Exemplo de Git: BuildProcessSource/Source/Bin/Debug
O sistema converte automaticamente o valor inserido em um caminho vstfs. Por exemplo: vstfs:///Git/VersionedItem/FabrikamGit/BuildProcesses/master/BuildProcessSource/Source/Bin/Debug.
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.
Executar a compilação
Enfileire a compilação. O resultado deve ser semelhante a:
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.
Navegue até C:\Program Files (x86)\Microsoft Visual Studio 12.0\Common7\IDE\ReferenceAssemblies\v2.0, selecione e adicione:
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