2017-02-22 3 views
0

J'ai construit une application avec le fichier App.config inclus et créé le programme d'installation de Windows pour cela via le projet Assistant de configuration. Quand j'exécute l'application installée, elle peut lire les configurations sans erreur, mais quand j'apporte des changements et enregistre les configurations, l'application plante juste.Lecture App.config fonctionne très bien, mais l'enregistrer se bloque l'application

Voici mon code:

Configuration applicationConfiguration = 
    ConfigurationManager.OpenExeConfiguration(ConfigurationUserLevel.None); 

// Reading works just fine. 
LogFilePath = applicationConfiguration.AppSettings.Settings["LogFilePath"].Value; 

LogFilePath = "some string here"; 

applicationConfiguration.AppSettings.Settings["LogFilePath"].Value = LogFilePath; 

// But saving it crashes the application. Only the .Save() line that making it crashed. 
applicationConfiguration.Save(ConfigurationSaveMode.Modified); 
ConfigurationManager.RefreshSection("appSettings"); 

Toute idée de ce qui ne va pas ici?

+1

Définir "écraser". Voyez-vous une exception? Si oui, quel est le message? –

Répondre

0

en raison de docummentation ici: https://msdn.microsoft.com/en-us/library/ms134265(v=vs.110).aspx éventuellement utilisateur qui exécute votre carte a la permission de lecture, mais ne dispose pas d'autorisation d'écriture (déposer et répertoire)

Pour obtenir l'objet de configuration pour une ressource, votre le code doit avoir des autorisations de lecture sur tous les fichiers de configuration dont il hérite des paramètres. Pour mettre à jour un fichier de configuration, votre code doit en outre disposer des autorisations d'écriture pour le fichier de configuration et le répertoire dans lequel il existe.

+0

Oh mec, en fait je l'ai deviné comme l'une des possibilités. Et oui, vous avez raison, comme je viens de voir l'exception venant d'une boîte de message que j'ai créée juste pour l'afficher: 'Une erreur est survenue lors du chargement d'un fichier de configuration: L'accès au chemin 'chemin du fichier temporaire' est refusé. (Chemin complet du fichier de configuration) ' –

+0

Les solutions les plus simples sont les dernières qui viennent à l'esprit. Je passe juste 2 heures à chercher pourquoi les données de formulaire ne se lient pas au modèle et finalement j'ai vu que j'ai oublié de définir les méthodes de setter, donc je sais ce que ça fait. – Misiakw