2010-12-07 16 views
3

J'ai une application Windows développée en utilisant Visual Studio 2008 (C#). Il a un fichier app.config, où diverses informations relatives à la configuration sont conservées. Après la création d'un programme d'installation pour le projet et son installation, aucun fichier app.config n'est copié dans le répertoire installé. Cependant, les fonctionnalités qui dépendent des paramètres de ce fichier semblent fonctionner.Pourquoi n'applique-t-on pas app.config après l'installation depuis le programme d'installation de Windows?

Maintenant, l'un de ces paramètres est une chaîne de connexion à une base de données, qui doit évidemment être changée lorsqu'elle est installée sur un autre PC. Ma question est, comment avoir le fichier app.config disponible avec le fichier d'installation afin qu'il puisse être configuré plus tard?

+0

Est-il possible que le fichier de configuration ait le même nom que votre fichier exe/dll, avec une extension config? –

+0

Non, ce n'est pas le cas. –

Répondre

6

Le fichier app.config est copié/renommé < nom de l'assembly > .config dans le cadre du processus de compilation et placé dans le répertoire bin. Si vous utilisez un projet Visual Studio Installer (blech!), Alors il aurait dû le ramasser aussi et l'avoir inclus dans l'installateur, IIRC.

(En réponse à votre commentaire à la fois des réponses)

Vous ne pouvez pas continuer à l'utiliser comme « app.config ». Le système de configuration .NET recherche le fichier de configuration dont le nom est le même que l'assembly d'entrée. Si vous avez renommé le fichier en "app.config", les classes de configuration cesseraient de fonctionner.

+0

Oui, c'est correct. Une note cependant, comment puis-je conserver le nom de fichier en tant que app.config? –

1

Votre fichier app.config est renommé lors de la compilation, avec le nom du fichier binaire. C'est à dire. Si votre binaire est myapp.exe, votre app.config sera renommé myapp.config ou myapp.exe.config.

Il s'agit du fichier que vous devez ajouter au package d'installation afin de l'utiliser lors du déploiement pour la configuration.

+0

On dirait que c'est le cas. J'étais capable de localiser le fichier. Je me demande simplement pourquoi le nom n'est pas app.config, ou est-ce fait pour plus de commodité? –

+2

@Gunner - Imaginez que vous créez une suite d'outils que vous souhaitez installer dans le même répertoire. Ils ont besoin d'un moyen de trouver * leurs * fichiers de configuration, c'est pourquoi la config qu'ils recherchent s'appelle comme eux + ".config". Il est conservé en tant qu'app.config dans le projet car vous pouvez modifier le nom de l'assemblage de sortie à tout moment, dans les paramètres du projet. –

+1

Je suppose (mais je ne suis pas sûr) que le fichier de configuration est nommé en fonction du binaire pour plus de commodité. Visual Studio semble préférer utiliser app.config, mais une fois le projet compilé, il est renommé en * .exe.config. Je suppose que cela est fait afin de pouvoir avoir beaucoup de binaires et de configs dans le même répertoire. Je vais devoir chercher pour la raison exacte cependant. –