Les différents paramètres de l'application en fonction de la configuration du mode de
Quelqu'un est-il au courant d'une façon que je peux le mettre en application (ou l'utilisateur) réglages de niveau de dans un .Net application conditionnelles sur les applications actuelles du mode de développement? C'est à dire: Debug/Release
Pour être plus précis, j'ai une url de référence à mon webservices tenu dans mes paramètres de l'application. Au cours de la libération en mode je voudrais les paramètres de point d' http://myWebservice.MyURL.com pendant le mode debug j'aimerais ces paramètres afin d'être http://myDebuggableWebService.MyURL.com.
Des idées?
Merci hhravn!
OriginalL'auteur Maxim Gershkovich | 2010-06-22
Vous devez vous connecter pour publier un commentaire.
Je sais que cela a été demandé il y a des années, mais juste au cas où quelqu'un est à la recherche d'une solution simple et efficace que j'utilise.
Aller propriétés du projet, onglet Paramètres (vous verrez votre URL du service web ou d'autres paramètres déjà mentionnés ici).
Cliquez sur "Afficher le Code" bouton disponible sur la page des Paramètres.
Ce Type dans le constructeur.
Ajoutez la fonction suivante en vertu de l'constructeur:
Maintenant, chaque fois que vous exécutez votre projet, de compiler seulement la ligne qui correspond à l'actuelle configuration de build.
Vous ne savez pas si je vous ai bien compris, mais il n'y a
#if(DEBUG)
directive de préprocesseur pour distinguer entre DEBUG et RELEASE configurations.En outre, vous pouvez définir vos propres symboles de la compilation par la configuration et l'utilisation dans#if
.Merci. Je n'étais pas sûr de l'endroit où votre
DEBUG
sont venus.OriginalL'auteur dotNET
C'est un peu en retard à la fête, mais je suis tombé sur une belle façon de mettre en œuvre le
web.transform
approche pourapp.config
fichiers. (c'est à dire qu'il rend l'utilisation de l'espace de nomshttp://schemas.microsoft.com/XML-Document-Transform
)Je pense que c'est "cool" parce que c'est une pure approche xml et ne nécessite pas de 3ème partie logiciel.
À mon avis, c'est beaucoup plus sophistiqué et plus robustes que d'avoir à maintenir
x
nombre de fichiers de configuration qui sont copiés dans leur intégralité, comme dans d'autres réponses.Une procédure pas à pas a été posté ici:
http://mitasoft.wordpress.com/2011/09/28/multipleappconfig/
Regarde, Maman - Pas explicite post-construire des événements dans mon IDE!
Travaillé, merci! Si vous utilisez VS 2017 et le message d'erreur apparaît qu'il ne peut pas trouver sur le Web*.les cibles, puis vérifier cette réponse stackoverflow.com/a/45354395/2964949
Pour VS 2017,
v10.0
doit être remplacé avecv15.0
dans<Import Project="$(MSBuildExtensionsPath)\Microsoft\VisualStudio\v15.0\Web\Microsoft.Web.Publishing.targets" />
.Utilisation
Project=”$(MSBuildExtensionsPath)\Microsoft\VisualStudio\v$(VisualStudioVersion)\Web\Microsoft.Web.Publishing.targets”
pour toute version de Visual Studio (à partir des commentaires dans le lien).OriginalL'auteur ne1410s
Y est, autant que je sache, aucun intégré dans la façon de le faire. Dans notre projet, nous maintenir 4 différents fichiers de paramètres, et de passer par la copie de chacun dans le fichier actif dans le paquetage de l'étape de la construction.
Cela a fonctionné sans problème pour nous pour quelques années. Simplement changer de cible et de l'ensemble du fichier de configuration est activé.
Edit: Les fichiers sont nommés par ex.
settings.settings.Debug.xml
,settings.settings.Release.xm
l etc..Scott, Hanselman a décrit un peu plus "intelligemment" approche, la seule différence est que nous n'avons pas les vérifier pour voir si le fichier a été modifié:
http://www.hanselman.com/blog/ManagingMultipleConfigurationFileEnvironmentsWithPreBuildEvents.aspx
OriginalL'auteur hhravn
Si vous voulez tout garder dans un fichier de configuration, vous pouvez introduire une section de configuration personnalisée pour votre application.les paramètres de propriétés de la banque pour le debug et release modes.
Vous pouvez soit conserver l'objet dans votre application qui stocke les dev mode des réglages spécifiques ou de remplacer un existant appsetting basé sur le commutateur de débogage.
Voici une brève application de console exemple (DevModeDependencyTest):
App.config :
L'objet pour stocker votre configuration personnalisée (DevModeSettings.cs):
Un gestionnaire pour accéder à vos paramètres de configuration personnalisée (DevModeSettingsHandler.cs) :
Et enfin votre point d'entrée pour l'application console (DevModeDependencyTest.cs) :
OriginalL'auteur jadusty
SlowCheetah ajoute les fonctionnalités que vous demandez, non seulement pour l'Application.config mais pour n'importe quel fichier XML dans votre projet - http://visualstudiogallery.msdn.microsoft.com/69023d00-a4f9-4a34-a6cd-7e854ba318b5
Je pense que c'est probablement la meilleure réponse -- il semble permettre par-construction de configuration de l'application.config transforme (un peu comme le construire dans le web.config transforme).
OriginalL'auteur Konrad Brodzik
J'ai eu le même problème à résoudre, et qui finit à l'aide de la XDT (web.config) transformer moteur, qui a été déjà suggéré dans la réponse de ne1410s qui peut être trouvé ici: https://stackoverflow.com/a/27546685/410906
Mais au lieu de le faire manuellement comme décrit dans le lien que j'ai utilisé ce plugin: https://visualstudiogallery.msdn.microsoft.com/579d3a78-3bdd-497c-bc21-aa6e6abbc859
Le plugin est seulement d'aider à la configuration de l'installation, il n'est pas nécessaire de construire et la solution peut être construit sur d'autres machines ou sur un serveur de build sans le plugin ou tout autre outil ne soit nécessaire.
OriginalL'auteur TGasdf