2009-12-07 2 views
0

Projet de studio visuel C#: Properties.Settings.Default.SomeValueOrAnother m'a dérouté.C# visual studio - Properties.Settings.Default.SomeValueOrAnother m'a dérouté

J'ai un projet relativement simple. Il enregistre un tas de valeurs entrées en dernier entre les sessions et les restaure lors de l'invocation suivante. Fonctionnait bien. J'ai changé un contrôle de sorte que la valeur minimum autorisée ne soit plus 1, mais qu'elle soit maintenant 100. La dernière valeur utilisée a été 3. Au démarrage, il se plaint maintenant que 3 n'est pas une valeur valide.

Bien, bien sûr, bien sûr - mais entendre le reste. J'ai modifié les paramètres dans VS par défaut à 500. J'ai modifié le fichier exename.config pour contenir 500 au lieu de 3. J'ai examiné tous les fichiers de configuration possibles (vshost.exe.config, les fichiers dans bin/debug bin/release, obj/debug, obj/release Ils contiennent tous une valeur = 500. J'ai reconstruit à plusieurs reprises J'ai copié juste l'exe et le fichier de configuration sur un PC séparé, de sorte que l'environnement de développement n'était pas un Je reçois toujours ce message d'erreur

Pour plus de confusion, sur le PC de développement, si je cours (directement, pas dans le débogueur) l'exe dans/obj/debug ou/obj/release je ne comprends pas Si je lance les sous/bin, je reçois l'erreur Les fichiers de configuration ont un contenu identique Si je copie l'exe & config de/obj chapeau ne donne pas une erreur sur le PC de développement) à un autre PC, je reçois l'erreur. Je pensais qu'exename.config était tout ce que j'avais à faire, mais il semble que VS fasse quelque chose derrière mon dos - du moins quelque chose que je ne trouve pas dans la documentation. J'imagine que c'est quelque chose de trivial. Si quelqu'un peut expliquer ce que j'ai manqué, je l'apprécierais. Tout ce que je veux vraiment faire est de sauvegarder de manière fiable certains paramètres utilisateur d'une exécution du programme à l'autre. Et obtenir cette application pour «oublier» cette valeur obsolète.

TIA

Mickey

+0

J'ai couru l'application et ai changé un arrangement (pas le problème). Je suis sorti. J'ai recherché des fichiers qui avaient été modifiés au cours de la dernière minute. Trouvé Aucun. Ran l'application à nouveau. Trouvé que mes paramètres avaient maintenant les valeurs que je venais de les définir. Où est-ce que ces choses sont sauvées?! – mickeyf

Répondre

0

Ce ne fut pas toute la réponse, mais il a effectivement expliqué où les valeurs de mystère étaient stockées:

« Cela pourrait aider certaines personnes aux prises avec Settings.settings et App.config: Attention pour l'attribut dans GenerateDefaultValueInCode le volet Propriétés lors de la modification de l'une des valeurs de la grille Settings.settings dans Visual Studio (VS2008 dans mon cas) .Si vous définissez GenerateDefaultValueInCode sur True (True est la valeur par défaut ici!), la valeur par défaut est compilée dans l'exe (ou dll), vous pouvez le trouver intégré dans le fichier lorsque vous l'ouvrez dans un éditeur de texte, je travaillais sur une application console et si j'avais des valeurs par défaut dans l'exe, l'application ignorait toujours le fichier config dans le même répertoire! Tout un cauchemar et aucune information à ce sujet sur le Internet entier. "

... dans un autre post ici. Je teste maintenant individuellement les valeurs lues à partir des paramètres, plutôt que de les faire confiance, et de les forcer dans une plage valide si nécessaire. Vraiment moche, et bien caché, par défaut. Je n'ai pas intégré de valeurs de données dans mes exécutables depuis le CPM. Jeesh.

Merci encore, Microsoft.

1

Rechercher des fichiers * .settings dans votre solution. C'est là que la valeur utilisée lors de la construction de votre projet sera stockée.

+0

Désolé, non. J'ai vérifié cela aussi et je me suis assuré qu'il avait les valeurs correctes plutôt que obsolètes. Mickey – mickeyf