Je crée une solution C# dans Visual Studio 2008 qui comporte plusieurs projets et dépendances de projet.
Je cherche un moyen de changer les numéros de version dll SEULEMENT lorsque le code qui construit le projet change.
J'utilise actuellement Beyond Compare pour comparer ma version construite localement au système de fichiers de production. Le but est de déployer UNIQUEMENT des DLL mises à jour. J'utilise des numéros de version auto-incrémentés, et chaque fois que vous ouvrez Visual Studio et que vous faites une build, tous les numéros de version dll s'incrémentent. Il en va de même pour une reconstruction complète de la solution et lorsqu'un développeur différent effectue une génération et essaie de déployer.
Existe-t-il un moyen de configurer Visual Studio pour incrémenter SEULEMENT le numéro de build en fonction du contenu du fichier modifié? Y a-t-il un ajout qui fera cela?
Il semble qu'une comparaison binaire de ces fichiers échoue également en raison des différents numéros de version dans les DLL. Est-ce que quelqu'un sait d'un meilleur outil comparer seulement le contenu des DLL?
Merci d'avance.Comment configurer les numéros de build dans Visual Studio pour activer la comparaison de DLL
Répondre
Une option consiste à passer à une solution d'intégration continue telle que Cruise Control .Net, ce qui permet de déclencher les générations lors de l'archivage dans un système de contrôle de source.
En ce qui concerne l'assemblage versioning ce que je fais habituellement est de créer un seul SolutionVersion.cs (pour remplacer la version d'assemblage par défaut cs) qui est lié à chaque projet (utilisez l'ajout d'élément existant, mais changer le bouton pour ajouter le lien)
Puis-je utiliser une tâche NAnt ou MSBuild de prendre le contrôle de croisière construire numéro d'étiquette et écraser les SolutionVersion.cs verison numéros avant que la solution est construite
de cette façon, je peux prendre un ensemble et remonter à code via Version de construction de CruiseControl (encore mieux, j'obtiens habituellement CC.net pour étiqueter la source avec le même numéro dans le contrôle de source)
Ce n'est pas tout à fait ce que vous demandez, mais j'ai trouvé cela utile dans le traitement de grandes solutions: Versioning Controlled Build. Selon son document, il détecte les modifications qui vous intéressent: "S'il existe un fichier avec un horodatage plus récent (ce qui signifie que le code source a été modifié après la modification de la version précédente), le projet sera marqué pour la mise à jour "
La solution recommandée et supportable serait que votre projet n'auto-incrémente pas automatiquement le numéro de build en utilisant le mode studio visuel. Ensuite, vous devrez manuellement, ou écrire un script de pré-construction/MS Build Task pour faire l'incrément.
Il y a un exemple intéressant dans ce codeproject article que vous devriez vérifier ... il implique une tâche prebuild qui fait la tâche de mettre à jour le numéro de version en fonction du jour de l'année
Je suggère que vous examinez les options que votre système de contrôle de révision fournit pour intégrer les informations de révision dans les fichiers source. J'ai eu assez de problèmes avec l'auto-incrément dans le passé que je me suis promis jamais plus. Ces jours-ci, je préfère quelque chose d'un peu plus concret qu'un numéro de build et j'insère des identifiants uniques dans chaque produit du système de construction. Je décris mon propre système au Embedding mercurial revision information in Visual Studio c# projects automatically. Bien que ma solution ne vous convienne probablement pas, il y avait d'autres options intéressantes suggérées en réponse à ma question, donc certaines des solutions que j'ai rejetées peuvent, néanmoins, vous être utiles, même si vous devez les adapter à tout VCS utilisation.
- 1. Visual Studio: emplacements DLL pour la publication
- 2. Tâches de Visual Studio Build - Opérations TFS
- 3. Visual Studio, MS Build
- 4. Progression de Build dans Visual Studio
- 5. Comment activer la correspondance de parenthèses dans Visual Studio 2005?
- 6. statistiques Build Visual Studio
- 7. Visual Studio: différentes DLL pour les configurations
- 8. Comment activer la couverture de code dans Visual Studio 2005?
- 9. Comment configurer SQLite db dans Visual Studio?
- 10. Ant incrémental numéros de build pour les noms de zip
- 11. comment configurer les paramètres de la fenêtre de la console Visual Studio une fois pour toutes
- 12. Comment activer l'analyse de code dans Visual Studio 2010 Professional?
- 13. Comment configurer les avertissements du compilateur dans Visual Studio 2010?
- 14. Comment lier .dll dans visual studio 2008?
- 15. Comment configurer la variable d'environnement INCLUDE pour Visual Studio 2005?
- 16. Comment activer les numéros de ligne dans VS2008?
- 17. Visual Studio 2010 Comparaison de données Automation
- 18. Gestion des versions de build dans Visual Studio
- 19. Activer la compilation de DLL
- 20. Comment définir les répertoires de travail pour les dépendances DLL dans Visual Studio/C#
- 21. Comment faire pour configurer Visual Studio, VSS, VM?
- 22. activer les commentaires XML en C++ dans Visual Studio 2010
- 23. Signification de la commande COPY utilisée par Visual Studio Build?
- 24. Comment activer la détection d'erreur pour les fichiers CSS dans Visual Studio 2010?
- 25. Configurer Visual Studio pour afficher les messages d'erreur en anglais
- 26. Visual Studio 2008 dll question
- 27. Comment activer la comparaison relationnelle de pointeurs dans une erreur?
- 28. Auto-versioning DLL dans Visual Studio 2008
- 29. build VDProj sans Visual Studio installé
- 30. Est-il possible de configurer un dossier partagé pour les DLL avec un chemin relatif dans Visual Studio 2008?
+1 pour ccnet. Pour les versions d'assemblage, nous utilisons le numéro de révision de subversion.Pour les installateurs, nous avons des projets ccnet qui nécessitent une génération de force, donc le programme d'installation est versionné en fonction du numéro de build ccnet. – Pedro
Vous avez raison, avoir le serveur de construction faire c'est la meilleure option. le fichier de la version liée obtient la plupart du temps, mais CHAQUE version dll changerait avec chaque build si vous utilisez le numéro de build. l'utilisation du nombre de révolutions à partir du contrôle de la source semble plus compliquée à atteindre dans la plupart des scénarios, et plus de complexité pour utiliser le dernier nombre de révolutions de fichiers seulement dans un projet spécifique. – jaminto
Je renonce à l'exigence du déploiement partiel des seules DLL mises à jour, le déploiement de toutes les DLL à partir d'une nouvelle version est très bien, et tous auront des numéros de version mis à jour en fonction du numéro de build. http://www.jetbrains.com/teamcity/ est mon serveur de construction de choix maintenant, peut être le vôtre aussi. – jaminto