Où stocker la configuration pour une application .NET simple?

Je programme une application assez simple que je veux couper à un seul fichier EXE + un peu de stockage de données (XML par exemple).

Ma question concerne les fichiers de configuration. Où mettre ces fichiers? J’ai vu quelques applications ne disposant que d’un fichier EXE (uTorrent, Media Player Classic – je peux les utiliser sans aucune installation), mais elles stockent leur configuration ailleurs. Comment y parvenir?

Comment aborderiez-vous une telle situation? Est-il préférable d’essayer de réaliser ce que j’ai décrit ci-dessus ou d’utiliser simplement un fichier de configuration et un stockage de données dans le même répertoire que le fichier EXE?

Je pense que vous voulez jeter un oeil sur les parameters de l’application . C’est une API qui vous permet de sauvegarder les parameters de l’utilisateur ou de l’application à l’aide d’une API fortement typée. Sous le capot, les parameters sont stockés via une sérialisation XML.

Cette API fonctionne avec pratiquement tous les types d’applications .Net, y compris les versions Click Once à faible autorisation. Il fait le travail de trouver l’emplacement sur disque approprié pour stocker les données et les cache complètement de vous. Il a également une belle interface graphique dans Visual Studio.

Créer ou utiliser un fichier dans le même dossier (ou dans App_Data) est une pratique assez courante.

Vous utilisez un programme d’installation tel que Inno Setup (gratuit) pour créer un seul programme d’installation exe ( http://www.jrsoftware.org/isinfo.php ).

Si vous souhaitez une firebase database plutôt que XML, consultez SQLite ( http://www.sqlite.org/ ), une firebase database basée sur fichier ou utilisez une firebase database MS Access.

Les programmes EXE uniquement stockent leurs données dans le registre Windows ou dans le dossier Application Data / AppData de l’utilisateur. Bien que cela puisse paraître plus propre au début, cela cache simplement la laideur de disperser toutes vos données. Je suggérerais simplement d’aller avec un simple fichier XML / INI / texte qui est généré lorsque cela est nécessaire et facile à migrer.

Veuillez consulter: WPF / C #: Où devrais-je enregistrer les fichiers de préférences utilisateur?

Vous pouvez utiliser le fichier app.config pour stocker votre configuration. Pour les données, je suggérerais quelque chose comme db4o ou SQLite .

modifier

Ce tutoriel peut vous montrer à quel point il est simple d’utiliser db40 pour stocker et récupérer vos données.

Ne pas oublier le stockage isolé . Il vous permet de lire et d’écrire des fichiers sans avoir à spécifier un emplacement. Parfois, c’est la seule façon pour les applications en bac à sable (comme Silverlight) de stocker localement des données spécifiques à un utilisateur ou à une machine. Voir ici pour un exemple.

Je voudrais les stocker dans le même répertoire. Cela me semble plus facile, du moins c’est ce que je fais toujours.