Pregunta

Durante el uso de una tercera parte de DLL que estaba recibiendo la siguiente excepción:

  

ExePath debe especificarse cuando no se ejecuta dentro de un independiente exe

con el siguiente traza

  

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

La razón por la que encontré fue que estaba buscando app.config y me había proporcionado los detalles en web.config. Mi pregunta es: ¿por qué diferenciar entre la System.Configuration web.config y app.config? ¿Alguna idea?

¿Fue útil?

Solución

ejecutables:

Varios ejecutables .NET pueden vivir en el mismo directorio. Como no puede haber dos archivos con el mismo nombre en el mismo directorio, las aplicaciones deben utilizar nombres diferentes para sus principales archivos de configuración. El esquema applicationName.exe.config resuelve este.

aplicaciones / sitios web:

.NET aplicaciones web son compilados a archivos DLL y los sitios web generalmente se compilan just-in-time. Por lo tanto, no hay un "punto de entrada principal" en este tipo de proyectos. Es posible crear un proyecto web en la que cada página se compila a su propia asamblea. ¿Cuál es el conjunto principal? Cuyo conjunto debemos nombrar el archivo de configuración después?

Afortunadamente, sólo un proyecto web puede ser alojado en un solo directorio, por lo que sólo un archivo de configuración principal se va a vivir aquí. Esto permite que para el nombre principal archivo de configuración para ser recogido por convención, y que el nombre de archivo pasa a ser web.config.

Otros consejos

web.config es para su sitio web y sólo las aplicaciones web. Se mantiene fijo, es decir, no cambia su nombre; siempre llama web.config.

app.config es para aplicaciones no web - Windows Forms, WPF, servicios NT etc. Esto se renombró en YourApplicationName.exe.config cuando genere el proyecto. Usted no encontrará nunca un app.config con ese nombre en el directorio de una aplicación (o si lo hace, no va a ser utilizado).

¿Por qué Microsoft optar por utilizar dos tipos diferentes de nombres - No sé - solicitar a Microsoft

.

Así que, básicamente, sólo tiene que saber lo que está tratando con y proporcionar la información en el lugar correcto.

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top