在哪里存储简单.NET应用程序的配置?

我正在编写一个相当简单的应用程序,我想切换到一个简单的EXE文件+一些数据存储(例如XML)。

我的问题是关于配置文件。 在哪里放这些文件? 我看到一些只有EXE文件的应用程序(uTorrent,Media Player Classic – 我可以在没有任何安装的情况下使用它们),但是它们将配置存储在其他地方。 怎么做到这一点?

你会如何处理这种情况? 尝试实现上述内容,或者只是在与EXE文件相同的目录中使用配置文件和数据存储是否更好?

我想你想看看应用程序设置 。 这是一个API,允许您使用强类型API保存用户或应用程序设置。 在引擎盖下,设置通过XML序列化存储。

此API适用于几乎所有类型的.Net应用程序,包括低权限Click Once版本。 它可以在磁盘上找到适合存储数据的位置,并完全隐藏它。 它还有一个很好的GUI集成到Visual Studio中。

在同一文件夹(或App_Data)中创建或使用文件是非常标准的做法。

您使用Inno Setup(免费)等安装程序创建单个exe安装程序( http://www.jrsoftware.org/isinfo.php

如果您需要DB而不是XML,请查看SQLite( http://www.sqlite.org/ )基于文件的DB或使用MS Access DB。

仅EXE程序将其数据存储在Windows注册表或用户的Application Data / AppData文件夹中。 虽然这一开始可能看起来更干净,但它只是隐藏了散布所有数据的丑陋。 我建议只使用一个简单的XML / INI /文本数据文件,该文件在需要时生成并易于迁移。

请参阅: WPF / C#:我应该在哪里保存用户首选项文件?

您可以使用app.config文件存储配置。 对于数据,我会使用像db4o或SQLite这样的东西。

编辑

本教程可以向您展示使用db40存储和检索数据的简单方法。

不要忘记隔离存储 。 它为您提供了一个读取和写入文件的位置,而无需您指定位置。 有时,沙盒应用程序(如Silverlight)可以在本地存储用户或计算机特定数据。 请看这里的例子。

我会将它们存储在同一目录中。 这对我来说似乎更容易,至少这是我一直这样做的方式。