-1
<?xml version="1.0" encoding="UTF-8"?>
<configuration>
  <configSections>
    <sectionGroup name="userSettings" type="System.Configuration.UserSettingsGroup, System, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
      <section name="Tests" type="System.Configuration.ClientSettingsSection, System, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" allowExeDefinition="MachineToLocalUser" requirePermission="false" />
    </sectionGroup>
  </configSections>
  <userSettings>
    <Tests>
      <setting name="var1" serializeAs="String">
        <value>value1</value>
      </setting>
      <setting name="var2" serializeAs="String">
        <value>value2</value>
      </setting>
      <setting name="var3" serializeAs="String">
        <value>value3</value>
      </setting> 
    </Tests>
  </userSettings>
</configuration>

Can someone help me to write a piece of code to dynamically edit setting "var2" from "value2" to "abcd" and "var3" from "value3" to "xyz" and save the file?

Ashok Mazumder
  • 149
  • 1
  • 2
  • 8
  • 1
    http://stackoverflow.com/questions/1186576/how-to-save-configuation-in-app-config-in-c-sharp-winforms and also http://stackoverflow.com/questions/453161/best-practice-to-save-application-settings-in-a-windows-forms-application – Steve Jun 06 '15 at 16:45

2 Answers2

1

You can use the ConfigurationManager to update your config file. Taken from MSDN:

 var configFile = ConfigurationManager.OpenExeConfiguration(ConfigurationUserLevel.None);
            var settings = configFile.AppSettings.Settings;
            if (settings[key] == null)
            {
                settings.Add(key, value);
            }
            else
            {
                settings[key].Value = value;
            }
            configFile.Save(ConfigurationSaveMode.Modified);
            ConfigurationManager.RefreshSection(configFile.AppSettings.SectionInformation.Name);
Alioza
  • 1,690
  • 12
  • 14
1

I don't know what I was doing wrong, finally this worked for me!!! Sorry for bothering...

{code}

        string settingsFilePath = Path.Combine(_asmblyFolderPathInHost, "InstallerTests.dll.config");

        XmlDocument installerConfig = new XmlDocument();
        installerConfig.Load(settingsFilePath);
        try
        {

            XmlElement machineName = (XmlElement)installerConfig.SelectSingleNode("//configuration/userSettings/InstallerTests.Resources.InstallernTests/setting[@name='MachineName']/value");
            if (machineName != null)
            {
                machineName.InnerText = machinename;
            }

            XmlElement vmName = (XmlElement)installerConfig.SelectSingleNode("//configuration/userSettings/InstallerTests.Resources.InstallernTests/setting[@name='VMName']/value");
            if (vmName != null)
            {
                vmName.InnerText = vmname;
            }

            XmlElement snapshotName = (XmlElement)installerConfig.SelectSingleNode("//configuration/userSettings/InstallerTests.Resources.InstallernTests/setting[@name='SnapshotName']/value");
            if (snapshotName != null)
            {
                snapshotName.InnerText = snapshotname;
            }

            installerConfig.Save(settingsFilePath);
        }
        catch (Exception e)
        {
            _consoleLogger.LogMessage(e.ToString());
        }       

{code}

Ashok Mazumder
  • 149
  • 1
  • 2
  • 8