2010-01-31 20 views
9

Estoy programando una aplicación bastante simple que quiero cortar en un simple archivo EXE + algo de almacenamiento de datos (XML, por ejemplo).¿Dónde almacenar la configuración para una aplicación .NET simple?

Mi pregunta es sobre los archivos de configuración. ¿Dónde poner esos archivos? Vi algunas aplicaciones que solo tienen un archivo EXE (uTorrent, Media Player Classic, puedo usarlas sin ninguna instalación), pero almacenan sus configuraciones en otro lugar. ¿Cómo lograr esto?

¿Cómo se acercaría a tal situación? ¿Es mejor tratar de lograr lo que describí anteriormente, o simplemente usar un archivo de configuración y almacenamiento de datos en el mismo directorio que el archivo EXE?

Respuesta

5

Creo que quiere echar un vistazo a Application Settings. Esta es una API que le permite guardar configuraciones de usuarios o aplicaciones usando una API fuertemente tipada. Debajo del capó, la configuración se almacena a través de la serialización XML.

Esta API funciona con prácticamente todos los tipos de aplicaciones .Net, incluidas las versiones de bajo permiso Click One. Hace el trabajo de encontrar el lugar adecuado en el disco para almacenar los datos y lo oculta por completo. También tiene una buena integración de GUI en Visual Studio.

7

creación o utilización de un archivo en la misma carpeta (o en el App_Data) es una práctica bastante estándar.

utiliza un instalador como Inno Setup (gratis) para crear un único instalador exe (http://www.jrsoftware.org/isinfo.php)

Si desea una base de datos en lugar de XML, echar un vistazo a SQLite (http://www.sqlite.org/) basado en un archivo DB o el uso un MS Access DB.

2

Puede usar el archivo app.config para almacenar su configuración. Para los datos, sugeriría algo como db4o o SQLite.

Editar

This tutorial le puede mostrar cómo es simple es utilizar DB40 para almacenar y recuperar sus datos.

6

Los programas de solo EXE almacenan sus datos en el Registro de Windows o en la carpeta Application Data/AppData del usuario. Aunque esto puede parecer más limpio al principio, simplemente oculta la fealdad de dispersar todos sus datos. Sugeriría simplemente ir con un simple archivo de datos XML/INI/text que se genera cuando es necesario y fácil de migrar.

-1

Los almacenaría en el mismo directorio. Eso me parece más fácil, al menos así es como siempre lo hago.

+6

Esto podría dar problemas cuando la aplicación intenta escribir en ese archivo, ya que los usuarios normales no tienen permisos de escritura en el directorio de archivos de programa. –

1

No se olvide Isolated Storage. Le brinda un lugar para leer y escribir archivos sin la necesidad de especificar una ubicación. Algunas veces es la única forma en que las aplicaciones de espacio aislado (como Silverlight) pueden almacenar datos específicos del usuario o de la máquina localmente. Ver here para un ejemplo.

Cuestiones relacionadas