2009-09-21 7 views
0

Dans mon app.config je suis quelque chose comme:.NET C# exécutable n'est pas config lire dynamiquement

<appSettings configSource="AppSettings.config"/> 

Je me serais attendu à l'application de lire les paramètres dynamiquement de appSettings.config mais je ne fonctionne pas. ..

Est-ce que je me trompe ici?

+0

Que voulez-vous dire par "dynamiquement" ici? Pensez-vous être en mesure de changer le fichier pendant que le code est en cours d'exécution et voir les changements ramassés la prochaine fois que vous demandez un paramètre? –

+0

Je ne pense pas que l'OP signifiait "dynamiquement" pour signifier que l'application prendrait des changements dans le fichier pendant que l'application est en cours d'exécution. Je pense qu'ils sont simplement confus quant à savoir pourquoi leurs paramètres de configuration externes ne sont pas ramassés ce qui est expliqué par ma réponse ci-dessous ... –

Répondre

1

app.config est lu une fois au démarrage. La relecture chaque fois qu'une valeur de config est référencée pourrait être un gros coup de performance. En outre, il existe certaines entrées comme les dépendances qu'il ne serait pas logique de modifier à l'exécution.

0

Vous utilisez le mauvais attribut, utilisez l'attribut file pour référencer un fichier de configuration externe:

<appSettings file="AppSettings.config"/> 
+0

ok, j'essaie ceci .. mais je ne peux pas utiliser le fichier pour la connectionStrings .. que di je fais avec eux? – David

+0

@Andrew, pourquoi pensez-vous que configSource est le mauvais attribut? A-t-il été déprécié ou quelque chose? –

0

Le réglage est correct. Mais comme l'a dit ctford, ceci n'est lu qu'une seule fois, lorsque l'application démarre ... Le fichier dans le même dossier que l'exécutable de l'application est-il chargé? En outre, dans Visual Studio, où vous avez stocké le fichier, cliquez dessus avec le bouton droit de la souris et vérifiez que la propriété "Copier dans le répertoire de sortie" du fichier Visual Studio est correctement définie. Pour les fichiers comme celui-ci, la valeur par défaut est "Ne pas copier" et ensuite le fichier ne sera pas là quand l'application s'exécute et le cherche ...