В проекте приложения консоли. Я пытаюсь записать значения в файл app.config и сохранить его навсегда, но сохранить его можно только в памяти. Я пробовал все решения в Write values in app.config file, но никто не работает для меня.Как написать значение для файла app.config навсегда в консольном приложении?
Любые идеи, что делать, чтобы изменения были постоянными?
app.config файл:
<appSettings>
<add key="test" value="123456" />
</appSettings>
класса с двумя методами только сохранения значения в памяти:
public static class ConfigurationHelper
{
public static void SetSetting(string key, string value)
{
Configuration configuration = ConfigurationManager.OpenExeConfiguration(ConfigurationUserLevel.None);
configuration.AppSettings.Settings[key].Value = value;
configuration.Save(ConfigurationSaveMode.Modified);
ConfigurationManager.RefreshSection("appSettings");
}
public static void SetSetting2(string key, string value)
{
Configuration configuration = ConfigurationManager.
OpenExeConfiguration(Assembly.GetExecutingAssembly().Location);
configuration.AppSettings.Settings[key].Value = value;
configuration.Save();
ConfigurationManager.RefreshSection("appSettings");
}
}
Простой тест, который выписывает изменения, но при перестраивать проекта или открытия app.config в блокноте изменения не сохраняются:
[Test]
public void FirstTest()
{
Console.WriteLine("Value before: " + ConfigurationHelper.Get<string>("test"));
ConfigurationHelper.SetSetting2("test", "NewValue");
Console.WriteLine("Value after: " + ConfigurationHelper.Get<string>("test"));
}
Когда вы перестраиваете приложение, оно копирует файл app.config из вашего проекта в ваш выходной каталог, перезаписывая его. Либо не делайте этого, либо скопируйте изменения, которые вы вписали в файл проекта. –
Спасибо, я думаю, я понимаю проблему. Любые идеи о том, как скопировать изменения из выходного файла обратно в файл app.config? –