Properties.Settings.Default.Save() 将 user.config 文件存储在带有哈希的目录中

Posted

技术标签:

【中文标题】Properties.Settings.Default.Save() 将 user.config 文件存储在带有哈希的目录中【英文标题】:Properties.Settings.Default.Save() store the user.config file in a directory with a hash 【发布时间】:2012-07-04 17:13:40 【问题描述】:

我尝试保存用户设置。为了保存一些数据,我使用了这段代码:

Properties.Settings settings = Properties.Settings.Default;
settings.Key1 = "value";
settings.Save();

但它会将 user.config 文件保存在以下路径下:

C:\Users\Me\AppData\Local\[CompanyName]\[ExeName]_Url_[some_hash]\[Version]\user.config

带有_Url_[some_hash] 的这个非常丑陋,我该如何删除它?

【问题讨论】:

你不能。这就是它的工作原理。 我第一次尝试的地方,它在没有_null_[some hash]的情况下工作 如果是用户设置,它将被保存在那里。也许应用程序设置会影响 app.config(但不确定)。 【参考方案1】:

你可以! 只需按照this article 详细解释所有内容,然后您必须修改属性 UserConfigPath 如下:

        private string UserConfigPath
    
        get
        
            System.Diagnostics.FileVersionInfo versionInfo;
            string strUserConfigPath, strUserConfigFolder;

            strUserConfigPath = Environment.GetFolderPath(Environment.SpecialFolder.LocalApplicationData, Environment.SpecialFolderOption.Create);
            versionInfo = System.Diagnostics.FileVersionInfo.GetVersionInfo(Assembly.GetEntryAssembly().Location);
            strUserConfigPath = Path.Combine(strUserConfigPath, versionInfo.CompanyName, versionInfo.ProductName, versionInfo.ProductVersion, "user.config");
            strUserConfigFolder = Path.GetDirectoryName(strUserConfigPath);
            if(!Directory.Exists(strUserConfigFolder))
                Directory.CreateDirectory(strUserConfigFolder);
            return strUserConfigPath;
        
    

通过这种方式,您可以从头开始构建路径。 您还应该修改 CreateEmptyConfig 方法,以便在未找到 user.config 文件时具有默认操作。

【讨论】:

【参考方案2】:

在此处查看更多信息 http://msdn.microsoft.com/en-us/library/aa730869%28v=vs.80%29.aspx

【讨论】:

我不知道该 msdn 页面上是否曾经有答案,或者它是否存在但我没有看到它。我在那个 msdn 页面上没有看到答案,我认为这个答案应该被更新(包括写作,或复制/粘贴相关信息)或被拒绝作为答案。

以上是关于Properties.Settings.Default.Save() 将 user.config 文件存储在带有哈希的目录中的主要内容,如果未能解决你的问题,请参考以下文章