J'ai besoin de basculer entre 3 environnements différents lors du développement de mon application Web - Développement, UAT et Prod. J'ai différentes connexions de base de données dans mes fichiers de configuration pour tous 3. J'ai vu la commutation de ces paramètres manuellement en changeant toutes les références, puis en reconstruisant la solution, et aussi avec les directives du préprocesseur. Existe-t-il un moyen facile de le faire en fonction d'une variable afin que la configuration ne doive pas être révisée lors du déploiement dans un nouvel environnement à chaque fois?Meilleure façon de basculer la configuration entre les environnements de développement/UAT/Prod dans ASP.NET?
Répondre
Pour moi, il semble que vous pouvez bénéficier des Visual Studio 2005 Web Deployment Project s. Avec cela, vous pouvez lui indiquer de mettre à jour/modifier des sections de votre fichier web.config en fonction de la configuration de construction.
Jetez un oeil à this blog entry from Scott Gu pour un aperçu rapide/échantillon.
Scott Hanselman a suggéré une façon de le faire:
http://www.hanselman.com/blog/ManagingMultipleConfigurationFileEnvironmentsWithPreBuildEvents.aspx
Je reçois un 404 sur cette page. capable de résumer? –
Il n'y a rien de mal à l'url si vous coupez le 'n' le coller.Très étrange ... –
Wierd - peut-être que Scott vérifie la référence? – Whisk
J'ai adopté le Jean Paul Boodhoo Method de configurations changeantes. L'idée générale est d'avoir un ou plusieurs fichiers TEMPLATE de configuration TOKENIZED au lieu des fichiers de configuration eux-mêmes. Vous disposez ensuite d'une tâche de script de génération qui remplace les jetons par des valeurs provenant d'un fichier de propriétés local SINGLE. Ce fichier de propriétés contient toutes les différences de configuration et est unique par copie de travail.
Ce système a fonctionné très bien pour moi et une fois la configuration initiale est un jeu d'enfant pour gérer les changements d'environnement.
Je suis un grand fan de l'utilisation MSBuild, en particulier les tâches communautaires MSBuild (http://msbuildtasks.tigris.org/) et il y a une tâche XSLT pour transformer le web.config avec les paramètres de chaîne de connexion appropriés, etc.
Je garde ces tâches pratiques:
<Target Name="Configs">
<Xslt RootTag="" Inputs="web.config" Output="Web.$(COMPUTERNAME).config" Xsl="web.config.$(COMPUTERNAME).xslt" Condition="Exists('web.config.$(COMPUTERNAME).xslt')" />
il est évident que ce n'est pas 100% ce que vous êtes après, il est si chaque dev peut avoir leur propre web.c onfig.
Mais il n'y a aucune raison que vous ne puissiez pas utiliser le principe ci-dessus pour avoir plusieurs configurations de construction qui appliquent le bon XSLT.
Mon XSLT ressemble à ceci:
<?xml version="1.0" encoding="utf-8"?>
<!-- Dev -->
<xsl:template match="/configuration/connectionStrings/add[@name='MyConnectionString']/@connectionString">
<xsl:attribute name="connectionString">Data Source=MyServer;Initial Catalog=MyBD;User ID=user;password=pwd</xsl:attribute>
</xsl:template>
<xsl:template match="node()">
<xsl:copy>
<xsl:apply-templates select="@*"/>
<xsl:apply-templates/>
</xsl:copy>
</xsl:template>
J'ai regardé dans MSBuild et/ou NA nt comme ma prochaine chose à apprendre, mais n'ont pas encore commencé. Je sais que j'ai besoin de !! –
Ma réponse renvoie à une série d'articles de blog qui enseignent comment automatiser une construction avec NAnt. Vous pouvez trouver un endroit utile pour commencer. – Gilligan
Je n'ai aucune expérience avec NAnt, qu'offre-t-elle par-dessus MSBuild? –
Vous pouvez toujours utiliser NAnt + NAnt.Contrib pour modifier le web.config lors de la construction. NAnt possède des tâches xmlpeek et xmlpoke qui vous permettent de mettre à jour des fichiers xml.
par exemple.
< fichier xmlpoke = "$ {} dist.dir /Web.config" XPath = "/ configuration/applicationSettings/MyProj.Web.Properties.Paramètres/paramètre [@name = 'MyProj_Web_Service']/valeur " value =" http: // $ {AppServer} /Service.asmx "/ >
- 1. Meilleure façon de basculer entre plusieurs versions du lecteur Flash pour faciliter les tests?
- 2. Quelle est la meilleure façon de gérer les paramètres (configuration) dans ASP.NET 2.0?
- 3. Quelle est la meilleure façon d'utiliser les liens et les ancres pour faire basculer la visibilité dans ASP.NET?
- 4. Basculer entre les contrôles WPF
- 5. Quelle est la meilleure façon de gérer les dépendances circulaires entre les objets?
- 6. Quelle est la meilleure façon de stocker la configuration spécifique à l'application dans les rails?
- 7. Meilleure façon d'imprimer dans ASP.NET
- 8. Meilleure façon de détecter une collision entre les sprites?
- 9. Quelle est la meilleure façon de stocker l'ordre entre les lignes de la base de données?
- 10. Quelle est la meilleure façon de stocker les valeurs de configuration pour plusieurs dizaines de colonnes?
- 11. ASP.NET MVC IIS7 Meilleure configuration
- 12. Quelle est la meilleure façon de tester les services WCF?
- 13. Configuration de l'iPhone Configuration Activation des fonctionnalités
- 14. maintien des différences de configuration entre les environnements de développement et en direct lors du déploiement à partir de SVN
- 15. La meilleure façon d'implémenter la suppression dans ASP.NET MVC "gridview"?
- 16. ASP.NET: Meilleure façon de gérer les ressources globales?
- 17. Basculer entre les fournisseurs de données (Flex 2.0)
- 18. Quelle est la meilleure façon de gérer les formats de retour multiples dans ASP.NET MVC
- 19. Basculer entre plusieurs piles dans gdb 6.3
- 20. Quelle est la meilleure façon de définir les dépendances entre plusieurs fichiers de construction ant?
- 21. Puis-je basculer dynamiquement entre les styles dans WPF?
- 22. Quelle est la meilleure façon d'utiliser JQuery dans Asp.net
- 23. Une meilleure façon d'utiliser les paramètres dans le fichier de configuration Spring.NET?
- 24. Basculer entre UITabBarController et UINavigationController
- 25. Quelle est la meilleure façon de gérer les exceptions ObjectDataSource?
- 26. La meilleure façon de déterminer si les cookies sont activés dans ASP.NET?
- 27. Meilleure façon de créer un siteearch dans ASP.NET
- 28. Meilleure façon de consigner les données POST dans Apache?
- 29. Meilleure façon de mettre en cache les données
- 30. Meilleure façon d'intégrer deux sites ASP.NET
Celui-ci a offert le moins de friction et de délai, et j'ai été en mesure de le mettre en marche assez rapidement.Merci pour votre aide! –
Pas de problème, content –