Visual Studio设置文件 - 它是如何工作的?(Visual Studio Setting

2019-06-23 10:03发布

我不明白以下几点:

  1. 是什么的app.config(applicationname.exe.config),并设置文件之间的区别?
  2. 我无法找到特定帐户下在Windows7 AppData目录的* .settings文件(我听说它应该位于某处那边)?
  3. 让我们假设* .settings文件在硬盘上的某个地方。 为什么在开发时间从设置文件中的数据复制到应用程序配置文件?

亲切的问候PK

Answer 1:

因此, 默认设置都存储在<exename>.config位于同一目录中的可执行文件。

你找不到user.config文件的原因是,如果你已经更改了默认它只是创建。 用户设置将覆盖其存储在缺省值<exename>.config文件。 如果没有修改过,那么没有用户配置文件将存在。 并且......一旦它确实存在,你会发现,只有已更改的设置将在user.config文件中显示出来。

为了测试这个......创建一个名为就像在你设置文件的临时虚拟变量。 当你启动应用程序做的:

Settings1.Default.temp = Settings1.Default.temp + 1;
Settings1.Default.Save();

现在,您将在用户的的ApplicationData文件夹中创建一个名为user.config这在Vista中: C:\Users\<username>\AppData\Local\<company>\<productname>

下面是一些代码,我写来帮助识别,所有的各种SpecialFolders其中在不同的操作系统。 (可能想要做一个查找替换为log.Debug ,代之以Console.WriteLine

log.Debug("SpecialFolder.ApplicationData: " + Environment.GetFolderPath(Environment.SpecialFolder.ApplicationData ));
log.Debug("SpecialFolder.CommonApplicationData: " + Environment.GetFolderPath(Environment.SpecialFolder.CommonApplicationData ));
log.Debug("SpecialFolder.ProgramFiles: " + Environment.GetFolderPath(Environment.SpecialFolder.ProgramFiles));
log.Debug("SpecialFolder.CommonProgramFiles: " + Environment.GetFolderPath(Environment.SpecialFolder.CommonProgramFiles ));
log.Debug("SpecialFolder.DesktopDirectory: " + Environment.GetFolderPath(Environment.SpecialFolder.DesktopDirectory ));
log.Debug("SpecialFolder.LocalApplicationData: " + Environment.GetFolderPath(Environment.SpecialFolder.LocalApplicationData ));
log.Debug("SpecialFolder.MyDocuments: " + Environment.GetFolderPath(Environment.SpecialFolder.MyDocuments ));
log.Debug("SpecialFolder.System: " + Environment.GetFolderPath(Environment.SpecialFolder.System ));

输出在Windows Server 2003:

SpecialFolder.ApplicationData: "C:\Documents and Settings\blake\Application Data"
SpecialFolder.CommonApplicationData: "C:\Documents and Settings\All Users\Application Data"
SpecialFolder.ProgramFiles: "C:\Program Files"
SpecialFolder.CommonProgramFiles: "C:\Program Files\Common Files"
SpecialFolder.DesktopDirectory: "C:\Documents and Settings\blake\Desktop"
SpecialFolder.LocalApplicationData: "C:\Documents and Settings\blake\Local Settings\Application Data"
SpecialFolder.MyDocuments: "C:\Documents and Settings\blake\My Documents"
SpecialFolder.System: "C:\WINDOWS\system32"

在Vista上输出:

SpecialFolder.ApplicationData: "C:\Users\blake\AppData\Roaming"
SpecialFolder.CommonApplicationData: "C:\ProgramData"
SpecialFolder.ProgramFiles: "C:\Program Files"
SpecialFolder.CommonProgramFiles: "C:\Program Files\Common Files"
SpecialFolder.DesktopDirectory: "C:\Users\blake\Desktop"
SpecialFolder.LocalApplicationData: "C:\Users\blake\AppData\Local"
SpecialFolder.MyDocuments: "C:\Users\blake\Documents"
SpecialFolder.System: "C:\Windows\system32"


Answer 2:

  1. App.config文件表示设置固有的应用程序,并且将应用到应用程序的所有会议。 在* .settings文件通常用于针对特定的用户使用的应用程序的设置。

  2. 试看看本地设置[«用户名»\本地设置\应用数据\«应用程序名称...»]下的应用程序数据目录,而不是用户的直接应用程序数据目录[«用户名»\应用数据。

  3. 在一个给定* .settings文件app.config文件中的设置复制用于初始化它的第一次使用这些设置; 包括在添加新的设置情况和之前的* .settings文件的副本,没有新的设置呢。

这是在C#中的链接,设置一个简短的步行通过。

使用C#中设置(MSDN)



文章来源: Visual Studio Settings file - how does it work?