TeamBuild - Est-il possible de choisir quels projets compiler au moment de la construction?

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

  •  03-07-2019
  •  | 
  •  

Question

J'automatise mon processus de génération à l'aide de TeamFoundation et je dois choisir les projets à compiler en fonction du fichier .proj de la construction. Voici le scénario complet:

J'ai un fichier .proj qui utilise un fichier .sln afin de compiler une solution contenant 2 sites Web. Le fichier .sln est configuré pour compiler les deux sites Web dans la configuration de la version.

Mon objectif est de ne compiler qu'un site Web par type de construction, à savoir que je souhaite que BuildType1 compile le site Web 1 et BuildType2 pour compiler le site Web 2.

Est-il possible de " modifier " le .sln de telle manière que je puisse décocher l'un des sites Web à compiler? Comme il s’agit d’un processus automatisé, je ne peux pas modifier le fichier .sln manuellement chaque fois que je souhaite créer un seul site Web.

Était-ce utile?

La solution

Consultez la section SolutionToBuild du fichier TFSBuild.proj.

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

Autres conseils

Il existe deux manières principales de contrôler la construction:

  • créez un type de construction séparé dans votre Team Explorer. Cela aura son propre fichier TFSBuild.proj complètement indépendant, ce qui lui permettra de construire la même base de code de manière complètement différente. Configurez SolutionToBuild pour créer exactement ce que vous voulez (comme décrit dans la réponse acceptée).

  • Utilisez un type de construction et définissez son fichier TFSBuild.proj pour qu'il utilise une propriété afin de contrôler ce qui est construit (cela nécessite une compréhension plus approfondie des scripts MSBuild). Dans la boîte de dialogue File d'attente Nouvelle construction, vous pouvez ensuite utiliser l'indicateur de ligne de commande / p: pour définir la propriété selon vos besoins. par exemple. "/ p: IncrementalGet = false; IncrementalBuild = false; ForceGet = true" forcera une construction normalement incrémentielle à effectuer une reconstruction complète. C'est utile pour les situations occasionnelles, mais ce n'est pas une bonne idée pour les constructions au jour le jour car vous devez définir les paramètres à la main à chaque fois.

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top