在 Visual Studio 调试期间从哪里加载 user.config

Posted

技术标签:

【中文标题】在 Visual Studio 调试期间从哪里加载 user.config【英文标题】:Where is user.config loaded from during Visual Studio debugging 【发布时间】:2016-06-17 03:41:41 【问题描述】:

我有一个从用户设置文件读取的应用程序,该文件通常存储在 Users/username/AppData/Local/publisher/app/version/user.config 中。我想测试直接对文件进行的更改,而不是通过 Visual Studio 属性编辑器。

我发现 this answer 指向另一个问题,该问题指出应用程序应该从哪里加载文件,但当我在 Visual Studio 的调试会话期间检查时,它似乎不存在。

例如,当我在断点处停止时在立即窗口中运行以下命令时,它无法找到文件。

System.IO.File.Exists(System.Configuration.ConfigurationManager.OpenExeConfiguration(System.Configuration.ConfigurationUserLevel.PerUserRoamingAndLocal).FilePath) //returns false

我想在调试过程中找到这个文件的原因是我收到了配置文件已损坏并导致生产中的应用程序崩溃的报告。我确信我可以将该文件恢复为默认状态,但我想在调试环境中实际重现该问题。

如何找到 Visual Studio 加载的设置文件?

【问题讨论】:

AFAIK 它首先在启动项目中查找配置文件,然后在全局文件中查找。 【参考方案1】:

我不太确定从发布这个问题到现在之间发生了什么变化,但今天我的问题中的代码返回 true。但要回答我提出的具体问题,user.config 文件的路径与标准安装的应用程序非常相似。

标准应用:

Users/username/AppData/Local/publisher/app/version/user.config

Visual Studio 调试应用程序:

Users/username/AppData/Local/publisher/app.vshost.exesome_hash_value/version/user.config

【讨论】:

非常感谢!这个问题快把我逼疯了。 “我的设置仍然存在,但它不在原始设置文件中!到底是什么?!” 我正在运行 Visual Studio 2017 15.8,在调试时它不再将其保存在 vshost 下。它是 Users/username/AppData/Local/publisher/app_Url_some_hash_value/version/user.config

以上是关于在 Visual Studio 调试期间从哪里加载 user.config的主要内容,如果未能解决你的问题,请参考以下文章

调试期间在 Visual Studio 中自动附加到子进程

在 Visual Studio 调试会话期间查找当前目录?

在 Visual Studio 调试期间无法连接到 Oracle 数据库

如何在调试构建期间使 Visual Studio (2019/2022) 链接到正常的运行时库?

从 Visual Studio 调试独立的 exe

Visual Studio 不使用 SDL 渲染图像