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 文件存储在带有哈希的目录中的主要内容,如果未能解决你的问题,请参考以下文章