在.NET中使用Settings.settings文件时,实际存储的配置在哪里?我想删除保存的设置以恢复默认状态,但找不到存储的位置...任何想法?
Sol*_*ogi 98
这取决于您选择的设置是"用户"范围还是"应用程序"范围.
用户范围设置存储在
C:\Documents and Settings\ username \Local Settings\Application Data\ ApplicationName
您可以在运行时读/写它们.
对于Vista和Windows 7,文件夹是
C:\Users\ username \AppData\Local\ ApplicationName
要么
C:\Users\ username \AppData\Roaming\ ApplicationName
应用程序范围设置保存AppName.exe.config在运行时,它们是只读的.
arb*_*ter 51
以下是可用于以编程方式获取user.config文件位置的代码段:
public static string GetDefaultExeConfigPath(ConfigurationUserLevel userLevel)
{
try
{
var UserConfig = ConfigurationManager.OpenExeConfiguration(userLevel);
return UserConfig.FilePath;
}
catch (ConfigurationException e)
{
return e.Filename;
}
}
Run Code Online (Sandbox Code Playgroud)
ApplicationSettings(即settings.settings)默认使用PerUserRoamingAndLocal进行用户设置(我记得).
更新:奇怪,但这里有太多不正确的答案.如果您正在寻找用户范围的设置文件(user.config),它将位于以下文件夹中(对于Windows XP):
C:\ Documents and Settings \(用户名)\ Local Settings\Application Data \(company-name-if-exists)\(app-name).exe_(Url | StrongName)_(hash)\(app-version)\
Url或StrongName取决于您是否具有应用程序集强名称.
Rob*_*ney 17
假设您在谈论桌面而不是Web应用程序:
向项目添加设置时,VS会app.config在项目目录中创建一个名称并将设置存储在该文件中.它还构建了Settings.cs为各个设置提供静态访问器的文件.
在编译时,VS将(默认情况下;您可以更改此)复制app.config到构建目录,更改其名称以匹配可执行文件(例如,如果您的可执行文件已命名foo.exe,文件将被命名foo.exe.config),这就是名称. NET配置管理器在运行时检索设置时查找.
如果您通过VS设置编辑器更改设置,它将同时更新app.config和Settings.cs.(如果查看生成的代码中的属性访问器Settings.cs,您将看到它们标有包含app.config文件中设置的默认值的属性.)如果通过app.config直接编辑文件来更改设置,Settings.cs将不会更新,但是当您运行它时,程序仍将使用新值,因为在编译时app.config将其复制到该程序foo.exe.config.如果将其关闭(通过设置文件的属性),则可以通过直接编辑foo.exe.config构建目录中的文件来更改设置.
然后是用户范围的设置.
应用程序范围设置是只读的.您的程序可以修改和保存用户范围设置,从而允许每个用户拥有自己的设置.这些设置不存储在foo.exe.config文件中(因为在Vista下,至少程序无法写入任何Program Files没有提升的子目录); 它们存储在用户应用程序数据目录的配置文件中.
该文件的路径是%appdata%\%publisher_name%\%program_name%\%version%\user.config,例如C:\Users\My Name\AppData\Local\My_Company\My_Program.exe\1.0.0\user.config.请注意,如果您为程序指定了强名称,则强名称将附加到此路径中的程序名称.
see*_*ker 13
在浏览以找出文件夹名称中的哈希时,我遇到了(通过这个答案):
http://blogs.msdn.com/b/rprabhu/archive/2005/06/29/433979.aspx
(编辑:Wayback Machine链接:https://web.archive.org/web/20160307233557/http://blogs.msdn.com:80/b/rprabhu/archive/2005/06/29/433979.aspx )
user.config文件的确切路径如下所示:
<Profile Directory>\<Company Name>\<App Name>_<Evidence Type>_<Evidence Hash>\<Version>\user.config哪里
<Profile Directory>- 是漫游配置文件目录或本地目录.默认情况下,设置存储在本地user.config文件中.要存储设置在漫游user.config文件,你需要标记的设置与SettingsManageabilityAttribute使用SettingsManageability设置为Roaming.
<Company Name>- 通常是指定的字符串AssemblyCompanyAttribute(告诫说,字符串必要时进行转义和截断,如果未在程序集中指定,则我们有一个回退过程).
<App Name>- 通常是由AssemblyProductAttribute(与公司名称相同的警告)指定的字符串.
<Evidence Type>和<Evidence Hash>-从所述应用程序域的证据中得到的信息,以提供适当的应用程序域和组件隔离.
<Version>- 通常是指定的版本AssemblyVersionAttribute.这需要隔离并排部署的不同版本的应用程序.文件名始终只是'
user.config'.
| 归档时间: |
|
| 查看次数: |
111654 次 |
| 最近记录: |