首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何更改Settings.settings值的值

如何更改Settings.settings值的值
EN

Stack Overflow用户
提问于 2011-07-06 16:59:48
回答 4查看 7K关注 0票数 6

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

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

代码语言:javascript
复制
Properties.Settings.Default.RunNumber++;
Properties.Settings.Default.Save();

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

代码语言:javascript
复制
<setting name="RunNumber" serializeAs="String">
    <value>0</value>
</setting>

这意味着如果RunNumber必须意外递增,只需在app.config中进行更改:

代码语言:javascript
复制
<setting name="RunNumber" serializeAs="String">
    <value>10</value>
</setting>

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

我的应用程序像这样访问RunNumber的值:

代码语言:javascript
复制
Properties.Settings.Default.RunNumber

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

EN

回答 4

Stack Overflow用户

回答已采纳

发布于 2011-07-06 17:11:45

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

为了让您手动更改该值,您需要在user profile目录中的相应user.config中执行此操作,因为如果您更改了app.config,则只有新用户才能看到更改。

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

代码语言:javascript
复制
C:\Users\[user]\AppData\Local\Microsoft\Example.Settings.CustomCl_Url_3qoqzcgn1lbyw2zx3oz1o3rsw2anyjsn\1.0.0.0
票数 7
EN

Stack Overflow用户

发布于 2011-07-06 17:13:35

在作用域为

的情况下使用名为RunNumber的整数值

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

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

票数 2
EN

Stack Overflow用户

发布于 2011-07-06 17:24:09

由于用户范围设置的值存储在用户文件中,而不是存储在app.config中,也许最好的方法是添加使用特定开关调用应用程序的功能,以重置您想要的值。例如myapp.exe /setcount=123

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

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/6593881

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档