TeamBuild - É possível escolher quais projetos para compilar em tempo de compilação?

StackOverflow https://stackoverflow.com/questions/806540

  •  03-07-2019
  •  | 
  •  

Pergunta

Estou automatizar o meu processo de compilação usando TeamFoundation e eu preciso escolher quais projetos para compilar acordo com o arquivo proj da compilação. Aqui está o cenário completo:

Eu tenho um arquivo proj que utiliza um arquivo .sln para compilar uma solução que contém 2 websites. O arquivo .sln está configurado para compilar ambos os sites na configuração de lançamento.

Meu objetivo é compilar apenas 1 site por tipo de construção, ou seja, eu quero o BuildType1 para compilar website 1 e BuildType2 para compilar o website 2.

Será que é possível "modificar" o .sln de tal maneira que eu posso desmarcar um dos sites para compilar? Uma vez que é um processo automatizado, eu não posso mudar o .sln manualmente cada vez que eu quiser compilar apenas um site.

Foi útil?

Solução

Veja a seção SolutionToBuild no arquivo TFSBuild.proj.

<SolutionToBuild Include="$(BuildProjectFolderPath)/path/MySolution.sln">
   <Targets>MyCustomTarget1;MyCustomTarget2</Targets>
   <Properties> Configuration=Release</Properties>
</SolutionToBuild>

Outras dicas

Existem duas maneiras principais que você pode controlar a compilação:

  • criar um separado Tipo construir em sua Team Explorer. Isto terá seu próprio arquivo TFSBuild.proj completamente independente, para que ele possa construir a mesma base de código de uma maneira completamente diferente. Defina o SolutionToBuild-se para construir apenas o que você quer (como descrito na resposta aceite).

  • Use um tipo de compilação e defina sua TFSBuild.proj-se de usar uma propriedade para controlar o que é construído (isto requer mais profundo entendimento od scripts de MSBuild). Na caixa de diálogo Fila de Construção Nova você pode usar o / p: flag de linha de comando para definir a propriedade como você precisar dele. por exemplo. "/ P: IncrementalGet = false; IncrementalBuild = false; ForceGet = true" irá forçar uma compilação normalmente incremental para fazer uma reconstrução completa. Isso é útil para situações occasoinal, mas não é uma boa ideia para o dia a dia aumenta à medida que você tem que definir os parâmetros manualmente de cada vez.

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top