He realizado un proyecto en C # .NET donde mi archivo de base de datos es un libro de Excel. Dado que la ubicación de la cadena de conexión está codificada en mi codificación, no hay ningún problema para instalarla en mi sistema, pero para otros sistemas sí.
¿Hay alguna manera de solicitar al usuario que establezca una ruta una vez que se completa la configuración de la aplicación?
Las respuestas que obtuve fueron "Usar App.Config" ... ¿Alguien puede decir qué es esta App.config y cómo usarla en mi contexto aquí?
c#
.net
app-config
shyam
fuente
fuente
Respuestas:
En su forma más simple, app.config es un archivo XML con muchas secciones de configuración predefinidas disponibles y soporte para secciones de configuración personalizadas. Una "sección de configuración" es un fragmento de XML con un esquema destinado a almacenar algún tipo de información.
Los ajustes se pueden configurar mediante secciones de configuración integradas como
connectionStrings
oappSettings
. Puede agregar sus propias secciones de configuración personalizadas; Este es un tema avanzado, pero muy poderoso para construir archivos de configuración fuertemente tipados.Las aplicaciones web suelen tener un archivo web.config, mientras que las aplicaciones GUI / servicio de Windows tienen un archivo app.config.
Los archivos de configuración de nivel de aplicación heredan la configuración de los archivos de configuración global, por ejemplo, machine.config.
Lectura desde la aplicación.
Las cadenas de conexión tienen un esquema predefinido que puede usar. Tenga en cuenta que este pequeño fragmento es en realidad un archivo válido app.config (o web.config):
Una vez que haya definido su app.config, puede leerlo en código utilizando la clase ConfigurationManager . No se deje intimidar por los ejemplos detallados de MSDN; En realidad es bastante simple.
Escribir en la aplicación.
Cambiar los archivos * .config con frecuencia no suele ser una buena idea, pero parece que solo desea realizar una configuración única.
Consulte: Cambiar la cadena de conexión y volver a cargar app.config en tiempo de ejecución que describe cómo actualizar la
connectionStrings
sección del archivo * .config en tiempo de ejecución.Tenga en cuenta que lo ideal sería realizar tales cambios de configuración desde un simple instalador.
Ubicación de la aplicación. Configuración en tiempo de ejecución
P : Supongamos que cambio algo manualmente
<value>
en app.config, lo guardo y luego lo cierro. Ahora, cuando voy a mi carpeta bin y ejecuto el archivo .exe desde aquí, ¿por qué no refleja los cambios aplicados?R : Cuando compila una aplicación, su app.config se copia en el directorio bin 1 con un nombre que coincide con su exe. Por ejemplo, si su exe se llamaba "test.exe", debería haber un "text.exe.config" en su directorio bin. Puede cambiar la configuración sin una recompilación, pero deberá editar el archivo de configuración que se creó en el momento de la compilación, no el archivo app.config original.
1: Tenga en cuenta que los archivos web.config no se mueven, sino que permanecen en la misma ubicación en el momento de la compilación y la implementación. Una excepción a esto es cuando se transforma un web.config .
.NET Core
Se introdujeron nuevas opciones de configuración con .NET Core. La forma en que funcionan los archivos * .config no parece haber cambiado, pero los desarrolladores son libres de elegir paradigmas de configuración nuevos y más flexibles.
fuente
Simplemente, App.config es un
XML
formato de archivo basado que contiene las configuraciones de nivel de aplicación .Ejemplo:
Puede acceder a las configuraciones utilizando
ConfigurationManager
como se muestra en el fragmento de código a continuación:Nota:
ConfigurationSettings
es un método obsoleto para recuperar información de configuración.fuente
System.Configuration.dll
para utilizar las API mencionadas anteriormente.System.Configuration.ConfigurationManager.AppSettings["Key"]
ya es una cadena, invocarlaToString()
es redundante.Solo para agregar algo que me faltaba en todas las respuestas, incluso si parece ser tonto y obvio tan pronto como sepas:
El archivo debe llamarse "App.config" o "app.config" y puede ubicarse en su proyecto al mismo nivel que, por ejemplo, Program.cs.
No sé si son posibles otras ubicaciones, otros nombres (como application.conf, como se sugiere en la documentación de ODP.net) no funcionaron para mí.
PD. Comencé con Visual Studio Code y creé un nuevo proyecto con "dotnet new". No se crea ningún archivo de configuración en este caso, estoy seguro de que hay otros casos. PPS Es posible que necesite agregar un paquete nuget para poder leer el archivo de configuración, en el caso de .NET CORE sería "dotnet add package System.Configuration.ConfigurationManager --version 4.5.0"
fuente
/resources
App.Config es un archivo XML que se utiliza como archivo de configuración para su aplicación. En otras palabras, almacena dentro de él cualquier configuración que desee cambiar sin tener que cambiar el código (y volver a compilar). A menudo se usa para almacenar cadenas de conexión.
Vea este artículo de MSDN sobre cómo hacerlo.
fuente
Puede acceder a las teclas en la aplicación.Config usando:
Echa un vistazo a este hilo
fuente
Solo agrego un punto más
Usando app.config de alguna manera para controlar el acceso a la aplicación, desea aplicar un cambio particular a todo el archivo de configuración de la aplicación de uso de la aplicación y puede acceder a la configuración como a continuación ConfigurationSettings.AppSettings ["Key"]
fuente