C# 如何更改设置的值。设置值

C# 如何更改设置的值。设置值,c#,.net,C#,.net,我有一个简单的控制台应用程序,它每天运行(由windows任务调度器调用),并且依赖于每次应用程序运行时递增的值。为了保持这个值,我选择使用Settings.Settings文件 因此,我有一个名为RunNumber的整数值,作用域为User,每次应用程序完成运行时,该值都会递增: Properties.Settings.Default.RunNumber++; Properties.Settings.Default.Save(); 我选择此选项的部分原因是该值也被放入app.config文件

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

因此,我有一个名为RunNumber的整数值,作用域为User,每次应用程序完成运行时,该值都会递增:

Properties.Settings.Default.RunNumber++;
Properties.Settings.Default.Save();
我选择此选项的部分原因是该值也被放入app.config文件中:

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

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

放置在
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且作用域为User的整数值

用户范围表示实际值不保存在App.config中,而是保存在
Users\\AppData\…
文件夹下

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

只需在访问
设置之前使用即可。

您可以修改生成的
设置
类,以便在每次访问特定属性时调用
重新加载

因为用户范围设置的值存储在用户文件中,而不是app.config中,也许最好的方法是添加使用特定开关调用应用程序的功能,以重置所需的值。e、 g.
myapp.exe/setcount=123


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

我认为您无法使用windows任务计划程序执行此操作。如果我理解正确,它只是一个由任务计划程序调用的常规控制台应用程序。在这种情况下,您可以手动调用该应用程序。OP建议这是一个偶尔编辑文件的手动过程-这种方法也会限制错误的可能性。
Properties.Settings.Default.RunNumber
C:\Users\[user]\AppData\Local\Microsoft\Example.Settings.CustomCl_Url_3qoqzcgn1lbyw2zx3oz1o3rsw2anyjsn\1.0.0.0