【问题标题】:How to save settings in application directory?如何将设置保存在应用程序目录中?
【发布时间】:2014-08-21 08:16:31
【问题描述】:

我使用内置的Properties.Settings.Default 来保存和加载我的应用程序的设置。 但是,默认情况下,设置文件(当 Properties.Settings.Default.save() 被调用时)保存在用户的目录中(类似于 users/bob/appdata/documents/..)。

我希望将设置文件保存在程序的根目录中。 (假设为 d:/myapp)因此,例如,当用户将包含应用程序的文件夹复制到另一台计算机时,也会携带设置文件,因为它保存在应用程序的文件夹中。

有没有办法做到这一点?

【问题讨论】:

  • 通常不是一个好主意,因为您经常会发现在生产环境中用户无权保存在那里。
  • 如果我检测到无法在应用文件夹中写入,那么我将折回默认用户文件夹。
  • 如果应用程序是由用户(不是管理员)启动的,应用程序不能写入应用程序的标准文件夹(程序文件)。
  • Xaruth:我的应用程序是可移植的,它不会安装。所以我知道用户有写入权限,因为他必须在那里复制 app 文件夹。

标签: c# windows


【解决方案1】:

如果您正在为商业环境编码,那么该市场的很大一部分都使用漫游配置文件,每当用户登录到新计算机时,这些配置文件就会复制到本地计算机。这包括存储在用户 Windows 配置文件的 Roaming 文件夹中的 user.config 文件。

当您将Settings 文件中的条目更改为User 时,您可以将Settings 文件设置为以漫游Windows 配置文件为目标,该设置的“属性”框中的选项将Roaming 设置为true在 Visual Studio 的 Settings 设计器中输入。

我强烈建议您不要尝试写入应用程序的主文件,因为根据经验,我还没有遇到允许用户自行更改其应用程序安装文件夹的公司环境,因为这会带来巨大的安全风险。

明显的例外是,如果您是为网络管理员人员编写此内容,但即便如此,请谨慎操作。

否则,不要这样做 - 这是不好的做法。

【讨论】:

    猜你喜欢
    • 2013-04-06
    • 2017-03-14
    • 1970-01-01
    • 2014-11-16
    • 1970-01-01
    • 2012-09-02
    • 2021-07-12
    相关资源
    最近更新 更多