Question

J'essaie de configurer un fichier common.targets avec certaines cibles msbuild communes que je veux utiliser dans les générations de mon équipe et donc importer dans mes fichiers TFSBuild.proj. Je me demande quel est le meilleur moyen d'y parvenir? Dois-je stocker common.targets juste à côté de chaque fichier TFSBuild.proj et avoir ainsi des doublons du fichier de cibles pour chaque génération d'équipe ou existe-t-il un autre moyen? Je préférerais ne pas placer le fichier de cibles sur chacune des machines de compilation.

Était-ce utile?

La solution

Team Build a une phase d'amorçage avant l'appel de TFSBuild.proj dans lequel seuls les fichiers TFSBuild.proj et les autres fichiers du même répertoire sont téléchargés à partir du contrôle de source. Donc, si vous voulez que votre fichier de cibles soit sous contrôle de source, vous devez le placer au même emplacement que TFSBuild.proj

Plus de détails dans cette réponse

Je ne l'ai jamais essayé, mais vous pourrez peut-être placer le fichier de cibles sur un partage réseau et l'importer à l'aide d'un partage unc. Quelque chose comme

<Import Project="\\anothermachine\share\something.targets"/>

Mais cela nécessiterait que le compte de génération et toutes les personnes exécutant des versions de bureau aient accès à ce partage réseau.

Autres conseils

Placez-le à un emplacement commun que vous aimez dans le contrôle de code source. Avant d’utiliser les cibles, effectuez un get à partir de votre fichier TFSBuild.proj comme suit:

<PropertyGroup>
  <!--Path to the TFS Command Line (used for checkin and out)-->
  <TxTf>&quot;C:\Program Files\Microsoft Visual Studio 9.0\Common7\IDE\tf&quot;</TxTf>

  <WorkingDirectory>C:\YourPathHere<WorkingDirectory>
  <CustomProjTFSDir>&quot;$/YourProj/YourCustomProjPath&quot;</CustomProjTFSDir>
</PropertyGroup>

<Exec WorkingDirectory="$(WorkingDirectory)"
      Command="$(TxTf) get $(CustomProjTFSDir)"/>

La clé de ce travail consiste à configurer un espace de travail pour votre utilisateur d'agent de construction qui pointe vers vos données personnalisées. Ce répertoire ne doit PAS se trouver dans le même espace que vos versions normales.

Vaccano

L'objectif d'un fichier .targets commun est de réduire la duplication de vos scripts. Si vous avez plusieurs copies de ce fichier sous contrôle de source, que se passe-t-il lorsque vous devez les modifier (pour mettre à jour un chemin .exe par exemple)? Personnellement, je préfère un emplacement séparé pour les fichiers communs que tout / tous les autres scripts de construction peuvent référencer. Le seul inconvénient est que vous coderez sûrement le chemin d'accès à ce fichier.

Vous pouvez les stocker avec les cibles MS dans $ Volume \ Program Files \ MSBuild. Cela présente l’avantage de pouvoir créer un chemin relatif à l’aide des métadonnées de connaissance intégrées "$ (MSBuildExtensionsPath) \ Path \ To \ Your \ Targets"

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