在 VB.net 中,如何保存对 app.config 的更改

mik*_*ike 6 vb.net app-config appsettings

我的 app.config 文件中有几个 appSettings,具有默认值:

<appSettings>
  <add key="Foo" value="one"/>
  <add key="Bar" value="two"/>
</appSettings>
Run Code Online (Sandbox Code Playgroud)

我可以读取并将值放入文本框和组合框

我有这段代码来保存对这两个文件所做的更改,但我所做的更改不会保存到 app.config 文件本身,因此当我关闭程序并再次打开它时,这些值会恢复为默认值。

Private Sub ButtonSaveSettings_Click(sender As Object, e As EventArgs) Handles ButtonSaveSettings.Click
    Dim settings = System.Configuration.ConfigurationManager.AppSettings

    settings.Set("Foo", TextBoxFoo.Text)
    settings.Set("Bar", ComboBoxBar.SelectedItem.ToString)
End Sub
Run Code Online (Sandbox Code Playgroud)

我需要做什么才能将更新的值保留到 app.config 文件中?

(编辑:副本上的答案不适用于 VB,并且没有解决此问题。)

mik*_*ike 3

我不需要通过将我的 app.config 文件更改为此(使用解决方案资源管理器 -> 我的项目 -> 设置)来搞乱 ConfigurationManager

<userSettings>
    <MyProject.My.MySettings>
        <setting name="Foo" serializeAs="String">
            <value>one</value>
        </setting>
        <setting name="Bar" serializeAs="String">
            <value>two</value>
        </setting>
    </MyProject.My.MySettings>
</userSettings>
Run Code Online (Sandbox Code Playgroud)

我能够使用此代码保存我的设置的更新值

Private Sub ButtonSaveSettings_Click(sender As Object, e As EventArgs) Handles ButtonSaveSettings.Click
    My.Settings.Foo = TextBoxFoo.Text
    My.Settings.Bar = ComboBoxBar.SelectedItem.ToString
End Sub
Run Code Online (Sandbox Code Playgroud)