Comment sélectionner un fichier de configuration d'application .Net à partir d'un paramètre de ligne de commande?
Je voudrais remplacer l'utilisation de l'application standard.config en passant un paramètre de ligne de commande. Comment puis-je changer l'application par défaut du fichier de configuration de sorte que lorsque j'accède à ConfigurationManager.AppSettings je suis accéder au fichier de configuration spécifié sur la ligne de commande?
Edit:
Il s'avère que la bonne façon de charger un fichier de configuration qui est différent du nom de l'EXE plus .la config est à utiliser OpenMappedExeConfiguration. E. g.
ExeConfigurationFileMap configFile = new ExeConfigurationFileMap();
configFile.ExeConfigFilename = Path.Combine(Environment.CurrentDirectory, "Shell2.exe.config");
currentConfiguration = ConfigurationManager.OpenMappedExeConfiguration(configFile,ConfigurationUserLevel.None);
Cette partie fonctionne. Je peux voir toutes les touches dans la section appSettings mais toutes les valeurs sont nulles.
source d'informationauteur Darrel Miller
Vous devez vous connecter pour publier un commentaire.
Voici donc le code qui permet effectivement de moi pour accéder à la section appSettings dans un fichier de configuration autre que celui par défaut.
Un fichier de commandes qui copie de votre fichier de configuration souhaité à appname.exe.config, puis exécute l'appname.exe.
J'avais besoin de le faire pour une application de la mienne, et de traiter avec la norme config objets tourné dans un putain de tracas pour un concept tellement simple que je suis allé cet itinéraire:
alors je peux passer en quel que soit le nom de fichier de configuration dont j'ai besoin sur la ligne de commande, et si l'on n'y est pas - il suffit de charger une application.config dans le DataSet.
Jeezus c'était tellement plus simple après. 🙂
Ron
C'est la partie pertinente de la source pour l'application qui utilise la configuration par défaut et accepte de remplacer via la ligne de commande:
En cours ou de la configuration de l'utilisateur dans l'objet de Config
Utiliser l'objet de config
Ce n'est pas exactement ce que vous êtes désireux... pour rediriger le réel
ConfigurationManager
objet statique à point à un autre chemin d'accès. Mais je pense que c'est la bonne solution à votre problème. Découvrez laOpenExeConfiguration
méthode sur laConfigurationManager
classe.Si la méthode ci-dessus n'est pas ce que vous cherchez, je pense qu'il vaut également la peine de prendre un coup d'oeil à l'aide de la Les possibilités de Configuration de la Bibliothèque d'Entreprise cadre (développé et maintenu par Microsoft Modèles & les Pratiques de l'équipe).
Spécifiquement de prendre un coup d'oeil à la
FileConfigurationSource
classe.Voici un code qui met en évidence l'utilisation de la
FileConfigurationSource
de L'Entreprise De La Bibliothèqueje crois que cela répond pleinement à vos objectifs. La seule assemblée, vous avez besoin de Ent Lib pour ce qui estMicrosoft.Practices.EnterpriseLibrary.Common.dll
.