如何更改Settings.Settings值的值

本文关键字:Settings 何更改 | 更新日期: 2023-09-27 18:01:12

我有一个简单的控制台应用程序,它每天运行(由windows任务调度程序调用(,并且取决于每次运行应用程序时递增的值。为了保持这个值,我选择使用Settings.Settings文件。

因此,我有一个名为RunNumber的整数值和Scope User,它在应用程序每次运行结束时都会递增:

Properties.Settings.Default.RunNumber++;
Properties.Settings.Default.Save();

我选择这个的部分原因是该值也被放入app.config文件中:

<setting name="RunNumber" serializeAs="String">
    <value>0</value>
</setting>

这意味着,如果RunNumber必须意外增加,则可以在app.config:中更改它

<setting name="RunNumber" serializeAs="String">
    <value>10</value>
</setting>

我的期望是,下次我的应用程序读取RunNumber的值时,它将采用app.config中设置的值(在本例中为10(。这种情况不会发生,而是在下次运行应用程序时,它将使用上次修改的值。在这种情况下,运行次数将是1,而不是我期望的10。

我的应用程序访问RunNumber的值,如下所示:

Properties.Settings.Default.RunNumber

如何在不修改应用程序的情况下更改RunNumber的值?这个想法是,如果需要意外地将其更改为值,我可以在app.config中修改该值,而不必更改一些代码并重新部署应用程序。

如何更改Settings.Settings值的值

新用户使用您的应用程序并且需要创建他的设置时,放置在app.config中的值是默认值。运行应用程序一次后,将创建一个user.config来存储用户范围设置。

为了手动更改值,您需要在用户配置文件目录中的相应user.config中进行更改,因为如果更改app.config,只有新用户才能看到更改。

在没有漫游配置文件和名为Example.Settings.CustomClass的Windows窗体应用程序的Windows 7中,我得到了user.config的以下文件夹:

C:'Users'[user]'AppData'Local'Microsoft'Example.Settings.CustomCl_Url_3qoqzcgn1lbyw2zx3oz1o3rsw2anyjsn'1.0.0.0

一个名为RunNumber的整数值,带有作用域用户

用户作用域意味着实际值不保存在App.config中,而是保存在Users'<user>'AppData'...文件夹下。

如果您的控制台应用程序在管理员帐户下运行(或未放置在程序文件中(,则可以使用应用程序范围设置。

由于用户范围设置的值存储在用户文件中,而不是app.config中,因此最好的方法可能是添加使用特定开关调用应用程序以重置所需值的功能。例如CCD_ 7。

当然,你必须以合适的用户身份运行应用程序,以确保在正确的文件中设置值。

在访问Settings类之前,只需使用Reload((。您可以修改生成的Settings类,以便在每次访问特定属性时调用Reload