【问题标题】:Where to store configuration for a simple .NET application?在哪里存储简单 .NET 应用程序的配置?
【发布时间】:2010-01-31 15:35:26
【问题描述】:

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

我的问题是关于配置文件的。把这些文件放在哪里?我看到一些只有 EXE 文件的应用程序(uTorrent、Media Player Classic - 我无需任何安装即可使用它们),但它们将配置存储在其他地方。如何做到这一点?

你会如何处理这种情况?是尝试实现我上面描述的东西更好,还是简单地使用与EXE文件在同一目录中的配置文件和数据存储?

【问题讨论】:

    标签: c# .net configuration


    【解决方案1】:

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

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

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

    【讨论】:

      【解决方案2】:

      我想你想看看Application Settings。这是一个 API,它允许您使用强类型 API 保存用户或应用程序设置。在后台,设置是通过 XML 序列化存储的。

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

      【讨论】:

        【解决方案3】:

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

        【讨论】:

          【解决方案4】:
          【解决方案5】:

          您可以使用 app.config 文件来存储您的配置。对于数据,我建议使用db4oSQLite

          编辑

          This tutorial 可以告诉您使用 db40 存储和检索数据是多么简单。

          【讨论】:

            【解决方案6】:

            不要忘记Isolated Storage。它为您提供了一个读取和写入文件的位置,而无需您指定位置。有时,这是沙盒应用程序(如 Silverlight)在本地存储用户或机器特定数据的唯一方式。示例见here

            【讨论】:

              【解决方案7】:

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

              【讨论】:

              • 这可能会在应用程序尝试写入该文件时出现问题,因为普通用户在程序文件目录中没有写入权限。
              猜你喜欢
              • 1970-01-01
              • 1970-01-01
              • 2015-03-07
              • 1970-01-01
              • 1970-01-01
              • 1970-01-01
              • 2016-10-06
              • 2012-10-29
              • 2012-01-25
              相关资源
              最近更新 更多