configurationsettings - ¿Cómo incrustar app.config en proyectos de C#?
configurationmanager c# (6)
Cuando compila un proyecto de C #, la configuración de la aplicación de app.config se guarda junto con el archivo exe. Por ejemplo, si el nombre del programa es "solve_np.exe", habrá un "solve_np.exe.config" al lado, haciéndolo lucir menos limpio de lo que quiero. ¿Cómo se puede incrustar en el .exe?
Intenté configurar Build Action to Embed Resource, pero eso no funcionó.
Ajá Supongo que te estás quedando sin Visual Studio colocando automáticamente las cosas en la configuración que NO quieres que el usuario final configure.
En este caso utilizar recursos. Simplemente agregue un nuevo archivo de tipo .resx. Con esto podrás agregar cosas como cadenas e imágenes al archivo de recursos. Después de crear esto, debe proporcionar acceso estático a los recursos (normalmente genera un archivo de código a partir de los recursos para que usted no tenga que acceder a ResourceManager).
Por ejemplo, si hice resources.resx con una cadena llamada MyConfigValue después de una compilación, debería poder acceder a esto como:
textBox.Text = Resources.MyConfigValue;
Si desea valores que sean un poco variables pero que no deberían ser configurables, este es el lugar correcto para colocarlos.
HTH.
Aquí hay otro factor a considerar. Los desarrolladores experimentados de .Net están acostumbrados al diseño de aplicaciones estándar, que incorpora el uso de archivos de configuración en aplicaciones web y de escritorio. Si abandona esa práctica, dificultará que los desarrolladores que lo siguen comprendan lo que ha hecho. Incluso los sa en el servidor web pueden confundirse por la ausencia de un archivo de configuración.
Dado que casi todo el mundo lo hace de esta manera, su código no se ve "desordenado" a los demás. Por el contrario, sería desconcertante no ver un archivo de configuración donde se espera uno.
Después de considerar lo que estaba escrito en estos comentarios y otras búsquedas, decidí que la mejor manera de manejar mi problema de querer que mi cadena de conexión Entity Framework se incrustara en mi ejecutable en lugar de necesitar el archivo MyApplication.exe.config con mi solución implementada para crear una clase derivada como tal:
Public Class MyEFDataContainerLocal
Inherits MyEFDataContainer
Public Sub New()
MyBase.New(My.Settings.MyEFContainerConnectionString)
End Sub
End Class
Acabo de crear una Configuración de aplicación de tipo Cadena de conexión que contenía la misma cadena que la que se encuentra en el archivo App.Config. Solo tuve que reemplazar el "e;
con citas reales.
Luego, cuando quisiera usar MyEFDataContainer como en Dim db As New MyEFDataContainer
, solo usaría Dim db As New MyEFDataContainerLocal
.
Estoy de acuerdo con serhio darasd y Quibblesome pero solo puedes eliminar "solve_np.exe.config" y solo usará configuraciones predeterminadas.
No es poco profesional tener un archivo app.config enviado junto con su exe. Creo que la palabra que puede estar buscando es desordenada . Personalmente no encuentro que este sea mi caso, ¡sin embargo, todos somos diferentes! ¿Tal vez simplemente podría hacer que el archivo app.config esté oculto por defecto?
O otra alternativa es crear su propio archivo de configuración que puede guardar en la carpeta de datos de la aplicación o incluso almacenar las configuraciones en el registro.
Por lo general, la teoría de un archivo de configuración es que almacena la configuración que puede cambiar una vez que haya implementado la aplicación (para algo como las preferencias del usuario). Para hacer esto, necesita almacenar en un lugar externo a su aplicación. Si usa la configuración predeterminada, obtiene "[Your] .exe.config". Puede ver muchas otras opciones, pero casi todas ellas terminan con un archivo escrito en algún lugar, si proporciona un mecanismo que guarda las configuraciones de algún tipo.