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

12

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

我的问题与配置文件有关。应该把这些文件放在哪里?我看到有一些应用程序只有一个EXE文件(如uTorrent,Media Player Classic - 我可以使用它们而无需安装),但它们会将配置存储在其他地方。如何实现这一点?

如果您面临这样的情况,您会采取什么方法?是更好地尝试实现我上面描述的事情,还是只在与EXE文件相同的目录中使用配置文件和数据存储呢?

答:
我正在编写一个相对简单的应用程序,想将其变成一个简单的EXE文件,再加上一些数据存储(例如XML)。
我的问题涉及到配置文件。我应该把这些文件放在哪里呢?我看到有一些应用程序只有一个EXE文件(如uTorrent,Media Player Classic——我可以直接使用它们而不需要进行安装),但是它们会在其他地方存储它们的配置。如何做到这一点呢?
如果你面临这种情况,你会怎么处理呢?是更好地尝试实现我上面描述的那个东西,还是只在与EXE文件相同的目录下使用配置文件和数据存储呢?
7个回答

8
在同一文件夹(或在App_Data中)创建或使用文件是非常标准的做法。
您可以使用像Inno Setup(免费)这样的安装程序创建单个exe安装程序(http://www.jrsoftware.org/isinfo.php)。
如果您想要一个数据库而不是XML,请查看SQLite(http://www.sqlite.org/),这是一个基于文件的数据库,或使用MS Access数据库。

6

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


6
我想你需要查看应用程序设置。这是一个API,可以使用强类型API保存用户或应用程序设置。在幕后,设置通过XML序列化存储。
该API适用于几乎所有类型的.Net应用程序,包括低权限Click Once版本。它会找到适合存储数据的磁盘位置,并完全隐藏它。它还具有与Visual Studio的良好GUI集成。


2
你可以使用app.config文件来存储你的配置。对于数据,我建议使用类似于db4oSQLite的东西。 编辑 这个教程可以向你展示如何使用db40来存储和检索你的数据。

1
不要忘记 隔离存储。它为您提供了一个读写文件的位置,而无需指定位置。有时这是沙盒应用程序(如Silverlight)本地存储用户或机器特定数据的唯一方式。请参见此处以获取示例。

-1

我会把它们存储在同一个目录中。这对我来说似乎更容易,至少这是我一直以来的做法。


6
当应用程序尝试写入那个文件时,这可能会导致问题,因为普通用户在程序文件目录中没有写入权限。 - Lars Truijens

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接