Je souhaite changer l'emplacement où mon application recherche le fichier app.config.Comment changer l'emplacement de app.config
Je sais que je peux utiliser ConfigurationManager.OpenExeConfiguration() pour accéder à un fichier de configuration arbitraire - cependant, lorsque le .Net Framework lit le fichier de configuration (pour ConnectionStrings ou EventSources, par exemple), il regarde l'emplacement par défaut . Je veux réellement changer l'emplacement, globalement pour l'ensemble. Net Framework (pour mon application, bien sûr).
Je sais également que je peux utiliser AppDomainSetup pour modifier l'emplacement de app.config pour un nouvel AppDomain. Toutefois, cela ne s'applique pas au domaine principal AppDomain de l'application.
Je sais aussi que je peux remplacer la fonction Main() et créer un nouveau AppDomain comme ci-dessus et exécuter mon application dans ce nouveau AppDomain. Cependant, cela a d'autres effets secondaires - par exemple, Assembly.GetEntryAssembly() renverra une référence null. Etant donné que tout le reste fonctionne dans .Net, je m'attendrais à ce qu'il y ait un moyen de configurer l'environnement de démarrage de mon application - via un manifeste d'application, ou quelque chose comme ça - mais je n'ai pas réussi à trouver une lueur espérons dans cette direction.
Tout pointeur serait utile.
David Mullin
Hmmm. Dans mon test de cette approche (qui était différent du vôtre), GetEntryAssembly a renvoyé null. Mais, je n'ai pas fait ExecuteAssembly - j'ai trouvé le "second Main" que j'avais écrit et exécuté. Je vais essayer votre approche et voir si cela fonctionne pour moi. –
Je pense que ExecuteAssembly fait la différence. Au moins les Docs disent que GetEntryAssembly renvoie l'exécutable, * ou * celui passé à ExecuteAssembly(). –