Question

Quelle est la bonne façon d'inclure une sortie d'une génération comme un binaire dans une autre version?

Disons que j'ai une solution appelée CompanyName.Domain (ma couche de domaine). Je l'ai mis en place comme la construction et nightly builds.

Maintenant, je veux ajouter une solution appelée SomeProject.Web. Et je veux inclure le binaire de CompanyName.Domin dans un dossier Binaires à un niveau de pair avec ma solution. Ensuite, la référence du projet à Binaires \ CompanyName.Domain.dll fonctionnera.

Qu'est-ce que les meilleures pratiques pour ce faire? Je connais quelqu'un qui a dit qu'ils essayaient de le faire avec ramification. Je suis un « contrôle de code source » totale newb. Mais quelque chose cela semble mal.

Était-ce utile?

La solution

Tout comme Daryl, nous utilisons un dossier « Binaires » que nous faisons référence binaires à partir. Nos « bibliothèques » builds juste XCOPY les résultats dans l'emplacement des binaires, donc si nous voulons mettre à jour les bibliothèques, nous venons de vérifier les binaires, construire, et les vérifier à nouveau.

Cela nous permet de partager toutes nos bibliothèques internes (ainsi que toutes les bibliothèques 3ème partie que nous utilisons) à partir d'un seul emplacement standardisé et toutes nos bibliothèques peuvent être précompilés, sauver nos devs avoir à les construire si elles ne sont pas réellement changer quoi que ce soit dans le libs.

Faites attention à la libération de référence builds de vos bibliothèques (la seule exception que nous avons à ce sujet est que nous avons une bibliothèque d'aides de débogage qui sont conditionnellement compilés dans debug seulement, et nous devons faire référence à la version de débogage de celui-ci sinon tout notre débogage est compilé sur le programme même dans les versions debug!)

Une dernière note:. Évitez de branchement à moins qu'il n'y a pas d'alternative raisonnable

Autres conseils

Mon entreprise fait en créant un « Références » dossier pour contenir tous les fichiers .dll nécessaires pour construire des ensembles de références externes, comme le dossier bin ne marche pas réellement obtenir enregistré sous contrôle de code source.

Nous utilisons le TFS dépendance Replicator , qui peut copier des fichiers sur tout projet dans TFS après un projet construit . Il n'a pas vrai grande documentation, mais il semble faire ce qu'il est censé après vous l'obtenez configuration.

Le blog

Mon processus est similaire à celle des autres affiches.

Dire que j'ai deux projets, appelez CoreProject et AppProject. CoreProject est partagée. AppProject a un dossier appelé SharedBinaries. C'est là toutes les références de montage indiquent.

Mon script TFSBuild pour CoreProject est configuré pour effectuer les opérations suivantes:

Dernières -Get

-Build goutte à goutte zone (quelque chose comme \\ SERVER \ DropZone \ CoreProjectBuildNameAndNumber)

-Drop est copié dans un dossier dans la zone de largage (quelque chose comme \\ SERVER \ DropZone \ latest \ CoreProject)

Le script TFSBuild pour AppProject est configuré pour effectuer les opérations suivantes:

Dernières -Get

-Vérifier sur les fichiers dans le dossier SharedBinaries

Les fichiers -copy de \\ SERVER \ DropZone \ latest \ CoreProject

-Build

à Débarcadère -Drop (quelque chose comme \\ SERVER \ DropZone \ AppProjectBuildNameAndNumber)

-Si la construction réussit la construction est copié dans une zone de dépôt de dossier (quelque chose comme \\ SERVER \ DropZone \ latest \ de AppProject) et les fichiers SharedBinaries sont vérifiés dans

-Si la génération échoue les fichiers copiés dans SharedBinaries ont le undone de commande.

J'ai trouvé cela fonctionne vraiment bien. AppProject est toujours construit avec des morceaux les plus courants de CoreProject, donc nous savons tout de suite s'il y a un changement de rupture. En ayant SharedBinaries vérifié dans TFS je peux obtenir une version spécifique et exécuter le code avec les mêmes dll de CoreProject qui ont été utilisés à ce moment-là. Aussi je dois juste le dernier et obtenir ma machine locale est la construction avec les derniers morceaux ainsi.

scroll top