2010-03-24 7 views
1

J'ai une vérification pour m'assurer que le fichier app.config existe et pour signaler une erreur si ce n'est pas le cas:Pourquoi mon application recherche MyApp.exe.config et MyApp.config pour trouver le fichier app.config

System.Windows.Forms.MessageBox.Show(AppDomain.CurrentDomain.SetupInformation.ConfigurationFile); 
if (!File.Exists(AppDomain.CurrentDomain.SetupInformation.ConfigurationFile)) 
{ 

    throw new ConfigurationErrorsException("Unable to find configuration file. File is expected at location: " 
    + AppDomain.CurrentDomain.SetupInformation.ConfigurationFile + "\n"); 
} 

Lorsque je construis la solution, le fichier app.config est ajouté dans le répertoire de sortie AppName.exe.config, et si elle est exécutée du studio visuel extérieur AppDomain.CurrentDomain.SetupInformation.ConfigurationFile contient le chemin C: \ chemin \ appname.exe .config (à partir de VS c'est C: \ path \ AppName.vshost.exe.config). Si je supprime AppName.exe.config, la valeur est C: \ path \ Appname.config (no .exe). J'ai fait un peu plus d'expérimentation, et si Appname.config existe, ce fichier fonctionnera aussi pour charger mes valeurs de paramètres.

Que se passe-t-il ici? J'ai besoin d'avoir tout cohérent pour les rapports d'erreurs.

Répondre

1

J'ai reposté ceci sur MSDN quand je n'ai pas eu de réponse. Microsoft a confirmé que c'est un bug. Le travail officiel consiste à créer mon propre domaine d'application au lieu d'utiliser la valeur par défaut.