首页 > 解决方案 > C# 设置文件不显示更改

问题描述

我在我的 C# 控制台应用程序中玩弄一些设置。我想将一个字符串保存到 settings.settings 文件中,该文件通过在 Designview 中创建一个设置来工作(我称之为 teststring)。我分配了值“Hello World!”。当我在运行时访问它时,Properties.Settings.Default.teststring我会取回分配的值。到目前为止,一切都很好。现在这就是事情变得奇怪的地方:当我分配一个新值Properties.Settings.Default.teststring = "This is a new test"并保存它时Properties.Settings.Default.Save();,该值会按预期保存。

但是:设计视图中的值保持不变(“Hello World!”),当我现在更改设计视图中的值时,它不会影响存储的设置。它将返回“这是一个新的测试”。值的范围当然设置为“用户”,以便可以在运行时更改。

我必须更改什么才能使设置-设计-视图保持更新。如果不在 settings.settings 文件中,值“这是一个新测试”存储在哪里?

标签: c#.netsettings

解决方案


我无法发表评论,因此我将其发布为答案,但更新的设置存储在文本文件中C:\Users\<username>\AppData\Local\<company_name>\<app_name>randomcharacters\1.0.0.0\user.config

您可以通过编程方式获取路径

public static string GetDefaultExeConfigPath(ConfigurationUserLevel userLevel)
{
    try
    {
        var UserConfig = ConfigurationManager.OpenExeConfiguration(userLevel);
        return Path.GetDirectoryName(UserConfig.FilePath);
    }
    catch (ConfigurationException e)
    {
        return e.Filename;
    }
}

不知道如何回答设计师的问题,或者这是否是您所追求的,但也许它对您有所帮助。


推荐阅读