【问题标题】:Is appname.exe.config required for user specific settings?用户特定设置是否需要 appname.exe.config?
【发布时间】:2011-01-17 16:15:57
【问题描述】:

我正在构建一个简单的 winforms 应用程序,它使用内置设置来保存程序选项。所有设置都是针对每个用户的。

从生成的 cs 文件中可以看出,默认设置嵌入在源代码中,但应用程序在启动时仍会读取 appname.exe.config 文件。如果我删除该文件,应用程序似乎工作正常,但我想确保它不会破坏任何东西。

如果我只使用每用户设置,那么是否需要该文件?

【问题讨论】:

    标签: c# .net winforms settings


    【解决方案1】:

    您应该使用用户设置而不是配置文件。请参阅this 文章了解更多信息,包括如何读取/写入用户设置。

    【讨论】:

    • 我正在使用用户设置。配置文件是 VS 自动创建的,编译时重命名为 myapp.exe.config 我没有使用配置文件。
    • @Giorgi:那是一个配置文件。它是默认创建的,即使您不需要使用它。
    【解决方案2】:

    设置设计器将默认值嵌入到 [DefaultSettingValue] 属性中。属性的备注部分中的以下部分是相关的:

    不同的设置提供商可能有 不同的要求或限制 关于使用 默认设置值属性。为了 例如,LocalFileSettingsProvider 不需要此属性,并且 将覆盖由提供的任何值 如果有的话,这个属性 值—默认或用户修改— 已经存在于数据存储中。

    LocalFileSettingsProvider 是默认提供程序。所以,它在那里,但没有被使用。

    【讨论】:

    • 如果 LocalFileSettingsProvider 忽略 DefaultSettingValueAttribute 那么当应用程序第一次运行并且没有具有默认值的配置文件时,这些设置会有什么值?
    • 不能说我曾经尝试过这个,这样做从来没有任何意义。你为什么不自己试试呢?我怀疑有什么事情发生了。
    【解决方案3】:

    如果您使用Application Settings 并且您希望设置的持久性,那么是的,这是保存选项的位置。如果您删除该文件,如果用户更改设置并且您正在设置该设置,它只会重新创建它。

    【讨论】:

    • 选项保存到 appdata 文件夹。该文件仅包含 Settings.Designer.cs 中也存在的默认值
    猜你喜欢
    • 1970-01-01
    • 2018-07-19
    • 2021-08-15
    • 1970-01-01
    • 2022-09-23
    • 1970-01-01
    • 2014-10-20
    • 1970-01-01
    相关资源
    最近更新 更多