Question

Lors de l'utilisation d'un dll tiers, je recevais l'exception suivante:

  

ExePath doit être spécifiée lorsqu'ils ne sont pas en cours d'exécution dans un exe autonome

avec la trace suivante

  

System.Configuration.ConfigurationManager.OpenExeConfigurationImpl (ConfigurationFileMap FileMap, Boolean isMachine, ConfigurationUserLevel userLevel, String ExePath).

La raison pour laquelle j'ai trouvé qu'il cherchait app.config et j'avais fourni les détails dans web.config. Ma question est: pourquoi la différence entre System.Configuration web.config et app.config? Toute pensée?

Était-ce utile?

La solution

Exécutables:

Plusieurs executables .NET peuvent vivre dans le même répertoire. Comme il ne peut y avoir deux fichiers avec le même nom dans le même répertoire, les applications doivent utiliser des noms différents pour leurs fichiers de configuration. Le schéma de applicationName.exe.config résout ce.

Applications Web / sites:

applications Web .NET sont compilés pour les DLL et les sites Web sont généralement compilés juste à temps. Par conséquent, il y a dans ces types de projets ne « point d'entrée ». Il est possible de créer un projet web où chaque page est compilée à sa propre assemblée. Lequel est l'assemblage principal? Quel ensemble doit nous nommer le fichier de configuration après?

Heureusement, un seul projet Web peut être hébergé dans un répertoire unique, donc un seul fichier de configuration principal va vivre ici. Cela permet le nom du fichier principal de configuration à choisi par convention, et que le nom du fichier se trouve être web.config.

Autres conseils

web.config est pour votre site web et des applications web uniquement. Il reste fixe, à savoir ne change pas son nom; il est toujours appelé web.config.

app.config est pour les applications non-web - WinForms, WPF, services NT, etc. Ce sera rebaptisés YourApplicationName.exe.config lorsque vous créez votre projet. Vous trouverez jamais un app.config par ce nom dans le répertoire d'une application (ou si vous le faites, il ne sera pas utilisé).

Pourquoi Microsoft choisissent d'utiliser deux types différents de noms - Je ne sais pas - demander à Microsoft

.

Vous avez donc fondamentalement juste savoir ce que vous avez affaire à fournir les informations et au bon endroit.

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top