我在按钮点击时更新配置文件中的一个设置。我发现的代码很容易理解,我相信它的工作原理。但问题在于更新配置文件中的部分或写入部分。
所以在按钮上点击它会通过这个方法:
private static void UpdateSetting(string key, string value)
{
Configuration configuration = ConfigurationManager.OpenExeConfiguration(ConfigurationUserLevel.None);
configuration.AppSettings.Settings[key].Value = value;
configuration.Save();
ConfigurationManager.RefreshSection("applicationSettings");
}
这是我的配置文件中的targetet部分:
<applicationSettings>
<UpdatePackager.Properties.Settings>
<setting name="Sourcepath" serializeAs="String">
<value>D:\PMSmart</value>
</setting>
<setting name="DestinationpathUpdatePackages" serializeAs="String">
<value>D:\xxx</value>
</setting>
<setting name="DestinationpathClient" serializeAs="String">
<value>D:\xxx</value>
</setting>
<setting name="Versions" serializeAs="String">
<value>v5_9_0/v5_9_1/v5_9_2</value>
</setting>
</UpdatePackager.Properties.Settings>
</applicationSettings>
我错过了什么或做错了什么事吗?
答案 0 :(得分:2)
.config
的输出目录中的.exe
文件应该更新,而不是项目文件夹中的文件。
构建应用程序并再次运行时,修改后的配置文件将被项目文件夹中的文件覆盖。
在运行期间检查.config
或bin/Debug
文件夹中的bin/Release
文件中的值,您应该看到在UpdateSetting
方法执行后它已更新