我对设置如何将用户设置存储在不同的机器中感到困惑。
假设我在app.config中存储了以下用户设置:
<userSettings>
<StationAgent.Properties.Settings>
<setting name="AAA" serializeAs="String">
<value>11</value>
</setting>
<setting name="BBB" serializeAs="String">
<value>22</value>
</setting>
<setting name="CCC" serializeAs="String">
<value>33</value>
</setting>
<setting name="DDD" serializeAs="String">
<value>44</value>
</setting>
</StationAgent.Properties.Settings>
</userSettings>
在代码中我将“AAA”的值更改为666并保存并读取“BBB”值。
在我的本地计算机(Windows 7)上,存储在user.config中“Local”文件夹中的设置为
<userSettings>
<StationAgent.Properties.Settings>
<setting name="AAA" serializeAs="String">
<value>666</value>
</setting>
<setting name="BBB" serializeAs="String">
<value>22</value>
</setting>
</StationAgent.Properties.Settings>
</userSettings>
当在服务器(Windows Server 2007)上运行相同的代码时,配置文件如下所示:
<userSettings>
<StationAgent.Properties.Settings>
<setting name="AAA" serializeAs="String">
<value>666</value>
</setting>
<setting name="BBB" serializeAs="String">
<value></value>
</setting>
<setting name="CCC" serializeAs="String">
<value></value>
</setting>
<setting name="DDD" serializeAs="String">
<value></value>
</setting>
</StationAgent.Properties.Settings>
正如您在第一种情况下看到的那样,唯一触摸的值存储在不同的文件中,在第二种情况下,所有变量都以默认值保存,但“AAA”除外。
我的问题是为什么会有这种差异?我究竟做错了什么?我怎么解决这个问题?
如果这有帮助我总是使用Settings.Default工作并进行Settings.Default.Save()。