C#控制台调用Microsoft Graph API加载appsettings.json抛FileNotFoundException求助
该异常的核心原因是程序运行时无法在指定的工作目录下找到appsettings.json文件,可按照以下步骤逐一排查解决:
排查与解决步骤
- 检查文件复制输出配置
项目根目录下新建的appsettings.json默认不会自动拷贝到程序运行目录,这是新手最常遇到的问题。操作方法:在解决方案资源管理器中右键点击appsettings.json→ 选择「属性」→ 将「复制到输出目录」选项修改为「如果较新则复制」即可。 - 确认运行时工作目录路径
代码中通过System.IO.Directory.GetCurrentDirectory()获取的工作目录,在调试场景下可能和你预期的项目根目录不一致。可临时添加如下代码打印当前工作目录,确认对应路径下是否存在目标文件:Console.WriteLine("当前工作目录:" + System.IO.Directory.GetCurrentDirectory()); - 排查文件名与后缀错误
Windows系统默认隐藏已知文件扩展名,容易出现实际文件名为appsettings.json.txt但你以为是appsettings.json的问题。打开资源管理器的「显示」选项卡,勾选「文件扩展名」,确认文件名和后缀完全匹配。 - 可选配置调整
你当前代码中AddJsonFile的第二个参数optional设为false,代表文件不存在时直接抛出异常。如果需要兼容文件不存在的场景不触发异常,可以将参数修改为true:
注意该调整仅用于避免异常抛出,你依然需要保证文件存在才能正常读取配置项。.AddJsonFile("appsettings.json", optional: true, reloadOnChange: true)
额外注意
你当前的代码捕获FileNotFoundException后直接返回null,后续调用LoadAppSettings()方法后务必先判断返回值是否为null,再读取配置项,避免触发空引用异常。
内容的提问来源于stack exchange,提问作者Chandu Kuruba
相关产品推荐
相关产品推荐

