.net - Visual Studio 设置文件 - 它是如何工作的?

标签 .net visual-studio visual-studio-2008 settings

我不明白以下几点:

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

  • 亲切的问候
    PK

    最佳答案

    所以默认设置 存储在 <exename>.config文件与可执行文件位于同一目录中。

    您找不到 user.config 文件的原因是它只有在您对默认值进行了更改时才会创建。用户设置覆盖存储在 <exename>.config 中的默认值文件。 如果未进行任何更改,则不存在用户配置文件。 而且...一旦它确实存在,您会注意到只有已更改的设置才会显示在 user.config 文件中。

    为了测试这个...在您的设置文件中创建一个名为像 temp 的虚拟变量。启动应用程序时,请执行以下操作:

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

    您现在将在用户的 ApplicationData 文件夹中创建一个名为 user.config 的文件,该文件夹在 Vista 中位于:C:\Users\<username>\AppData\Local\<company>\<productname>
    这是我编写的一些代码,用于帮助确定不同操作系统上所有各种特殊文件夹的位置。 (可能想对 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"
    

    关于.net - Visual Studio 设置文件 - 它是如何工作的?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1001487/

    相关文章:

    c++ - 为什么我有条件地包含 stdafx.h 后会出现编译错误?

    c# - 具有不同变量名称的 Json 反序列化(修复后的解决方案)

    c++ - 抛出异常时获取堆栈跟踪

    c# - 从子文件夹解析程序集的正确方法

    c# - TypeCatalog 的使用

    c# - 将 ">"添加到 Process.Start 实例

    visual-studio - 选择 "Build solution"时如何让CMake生成INSTALL

    .net - 动态 ASP.net Web 窗体

    visual-studio-2008 - VSTS 2008 测试版中的数据驱动验证规则

    c++ - vc++(vs2008)有没有什么工具可以提高intellisense?