2011-07-21 142 views
1

我有用C#(.net 3.5)编写的Windows应用程序,并且有一个Settings.settings文件来保存应用程序的设置。Windows应用程序设置

当我做这样的事情:

Properties.Settings.Default.HSLastSend = DateTime.Now; 
Properties.Settings.Default.Save(); 

会保存并坚持当我重新启动应用程序,但是Settings.settings文件仍然保留了原来的价值。我似乎无法找到这个新值存储在哪里。我期望Settings.settings文件在我进入它时具有新的值。

这是一个问题还是正常的?

干杯提前,

斯图

回答

1

Setting.settings为应用程序提供默认值,而不是改变一个,保存在您的二进制文件资源。您可以通过在保存更改后的设置后加载应用程序来证明它,即使设置文件仍旧是“旧”,您也会得到更改的值。

编辑

只需注意Properties.Settings。 默认

在XP的机器它应该是在:

C:\ Documents和Settings \ “YourMachineUserName” \应用数据\

问候。

+0

好吧,如果我分发应用程序就目前的立场,它会用二进制保存的版本,而不是在Settings.settings默认? – stuartw87

+1

另一个重要的事情是考虑设置的范围。它可以是用户或应用程序,这意味着它会被保存在不同的地方。 –

+0

@J。斯蒂恩同意。 – Tigran

0

这是正常的 的设置文件只存储静态值,设计用于在一个集中的地方动态值,如 DateTime.Now不能以这种方式存储存储 运行应用程序的设置,如果你想在当前日期时间,为什么不称之为 在你的代码

+0

-1,它保存了应用程序上次执行的操作,而不是当前日期时间。无论如何,这是我对代码的理解。 –

+1

这正是我解释你不能让设置文件存储一个持久性更新的值,它只会保存存储到它的最后一个值尝试读下一个更接近下一次投票某人之前的回应 –