Web.Config Debug / Release

Je sais que web.config dans Visual Studio 2010 offre la possibilité de passer des bases de données du mode Débogage au mode Libération.

Voici mon web.Release.config:

           

Voici mon code Web.Debug.config:

            

Et voici mon code Web.config:

                                 

Lorsque je publie mon projet, rien ne s’affiche dans mon fichier Web.config.it La chaîne de connexion à la firebase database Live ne s’affiche-t-elle pas?

Les transformations web.config qui font partie de Visual Studio 2010 utilisent XSLT afin de “transformer” le fichier web.config actuel en sa version .Debug ou .Release.

Dans vos fichiers .Debug / .Release, vous devez append le paramètre suivant dans vos champs de chaîne de connexion:

 xdt:Transform="SetAtsortingbutes" xdt:Locator="Match(name)" 

Cela entraînera chaque ligne de chaîne de connexion à trouver le nom correspondant et à mettre à jour les atsortingbuts en conséquence.

Remarque: Vous n’avez pas à vous soucier de la mise à jour de votre paramètre providerName dans les fichiers de transformation, car ils ne changent pas.

Voici un exemple d’une de mes applications. Voici la section du fichier web.config:

    

Et voici la section web.config.release qui effectue la transformation appropriée:

    

Une note supplémentaire: les transformations ne se produisent que lorsque vous publiez le site, pas simplement lorsque vous l’exécutez avec F5 ou CTRL + F5. Si vous devez exécuter une mise à jour par rapport à une configuration donnée localement, vous devrez modifier manuellement votre fichier Web.config pour cela.

Pour plus de détails, vous pouvez voir la documentation MSDN

https://msdn.microsoft.com/en-us/library/dd465326(VS.100).aspx

Il est possible d’utiliser la cible de génération ConfigTransform disponible en tant que package Nuget – https://www.nuget.org/packages/CodeAssassin.ConfigTransform/

Tous les fichiers de transformation “web. * .Config” seront transformés et générés sous la forme d’une série de fichiers “web. *. Config.transformed” dans le répertoire de sortie de la génération, quelle que soit la configuration de construction choisie.

La même chose s’applique à “app. *. Config” pour transformer des fichiers dans des projets non Web.

puis en ajoutant la cible suivante à votre *.csproj .

    

Poster une réponse car c’est le premier post Stackoverflow qui apparaît dans Google sur le sujet.

Pour que la transformation fonctionne en développement (avec F5 ou CTRL + F5), je supprime ctt.exe ( https://ctt.codeplex.com/ ) dans le dossier packages (packages \ ConfigTransform \ ctt.exe).

Ensuite, j’enregistre un événement avant ou après la construction dans Visual Studio …

 $(SolutionDir)packages\ConfigTransform\ctt.exe source:"$(ProjectDir)connectionSsortingngs.config" transform:"$(ProjectDir)connectionSsortingngs.$(ConfigurationName).config" destination:"$(ProjectDir)connectionSsortingngs.config" $(SolutionDir)packages\ConfigTransform\ctt.exe source:"$(ProjectDir)web.config" transform:"$(ProjectDir)web.$(ConfigurationName).config" destination:"$(ProjectDir)web.config" 

Pour les transformations, j’utilise l’extension SlowCheeta VS ( https://visualstudiogallery.msdn.microsoft.com/69023d00-a4f9-4a34-a6cd-7e854ba318b5 ).

Si vous allez remplacer toutes les chaînes de connexion par des nouvelles pour l’environnement de production, vous pouvez simplement remplacer toutes les chaînes de connexion par des chaînes de production utilisant cette syntaxe:

       .... 

Les informations pour cette réponse proviennent de cette réponse et de cet article de blog .

remarque : comme d’autres l’ont déjà expliqué, ce paramètre ne s’appliquera que lorsque l’application publie pas lors de son exécution / débogage (en appuyant sur F5).