【问题标题】:Create a config or INI file to store user settings preferences创建配置或 INI 文件以存储用户设置首选项
【发布时间】:2016-04-09 08:37:14
【问题描述】:

我编写了一个可以在两种不同模式下运行的应用程序:测试或不测试。我也有能力根据标志进行追踪。我想要一个配置或 INI 文件来设置这些标志,以防止每次我想设置这些标志时更改代码。我不知道怎么做。 我是否需要通过 Visual Studio 添加新项目:应用程序配置文件?还是我需要创建一个 INI 文件?是否可以让我更改安装文件夹中的值而无需更改代码?

我尝试将应用程序配置文件添加到项目中,但我无法设置自己的值:

<?xml version="1.0" encoding="utf-8" ?>
<configuration>
   <userSettings>
      <add key="TestEnvironment" value="true" />
      <add key="Tracing" value="true" />
   </userSettings>
</configuration>

我收到 7 条警告: 主要是:找不到元素 userSettings 的架构信息

【问题讨论】:

    标签: c# winforms config ini


    【解决方案1】:

    您可以使用 appSettings 元素来存储您的键值对:

    <configuration>
      <appSettings>
        <add key="TestEnvironment" value="true" />
        <add key="Tracing" value="true" />
      </appSettings>
    </configuration> 
    

    在应用程序中,您可以像这样阅读它们:

    bool testEnv = bool.Parse(System.Configuration.ConfigurationManager.AppSettings["TestEnvironment"]);
    bool tracing = bool.Parse(System.Configuration.ConfigurationManager.AppSettings["Tracing"]);
    

    (确保您已将 System.Configuration 添加到您的引用中)

    【讨论】:

    • 是的,您可以使用 AppSettings 或作为另一个(更好的)解决方案,使用 Settings 文件。可能您会发现 this post 关于创建和使用设置很有帮助。也支持property binding to application settings
    • 如果我理解正确,在每台安装了应用程序的计算机上,我将能够从文件系统更改这些属性的值,这会影响代码,对吧?我需要为此将复制到输出目录设置为 True 吗?
    • @ehh:您可以在配置文件中手动更改这些值,但是您需要重新启动应用程序才能使这些更改生效。当你编译 VS 时会自动创建一个以你的应用程序命名的配置文件。例如,如果您的项目是 MyApp,它会生成 MyApp.exe.config。所以你无论如何都不会在输出文件夹中看到 App.config
    【解决方案2】:

    如果您使用的是 Visual Studio,则可以转到项目属性并进入“配置”选项卡。您可以在此处添加任意数量的设置,Visual Studio 会将它们添加到自动化的 app.config 配置文件中。

    使用此系统,您可以使用您在配置文件中提供的名称从代码中访问您的设置,如下所示:

    Properties.Settings.Default.SettingName
    

    【讨论】:

    • 或者您可以在属性文件夹下找到它或使用设计器或代码添加您的设置文件。可能您会发现 this post 关于创建和使用设置很有帮助。
    • 我添加了您通过项目属性建议的用户设置,并且我收到了我在帖子中所写的警告。我正在使用 VS2015
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2016-05-16
    • 2021-06-07
    • 2023-03-03
    • 2011-07-02
    • 2011-05-06
    • 1970-01-01
    • 2020-08-09
    相关资源
    最近更新 更多