【问题标题】:C# Settings File doesn't show changesC# 设置文件不显示更改
【发布时间】:2020-10-12 08:51:23
【问题描述】:

我正在使用我的 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!”),当我现在更改设计视图中的值时,它不会影响存储的设置。它将返回“这是一个新的测试”。 Value 的 Scope 当然设置为“User”,这样就可以在运行时更改。

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

【问题讨论】:

    标签: c# .net settings


    【解决方案1】:

    我无法发表评论,因此我将其发布为答案,但更新的设置存储在文本文件 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;
        }
    }
    

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

    【讨论】:

    • 所以我现在真的很困惑。有 user.config、app.config、settings.settings 和 [AppName].exe.Config。有谁知道区别以及哪个命令写入什么? Properties.Settings.Default.Save(); 写入 user.config。 ConfigurationManager.OpenExeConfiguration(ConfigurationUserLevel.None); 写入 [AppName].exe.Config。设计视图到 Settings.settings。有人知道哪个命令写入 Settings.Settings 以及 app.config 的全部内容吗?
    • user.config 是保存的用户设置。 settings.settings 是 Visual Studio 特定的,用于编辑值并编译它们,这将生成 appname.exe.config,这是默认存储的值
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2015-04-25
    • 1970-01-01
    • 2011-04-14
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多