如何在appsettings.Development.json中用Windows环境变量指向OneDrive路径?
解决方法
问题出在.NET配置系统默认不会自动解析配置字符串中的Windows环境变量占位符(比如%OneDrive%),你读取到的documentPath是原封不动的%OneDrive%\\project123\\keys\\,而非实际的OneDrive路径,导致拼接后的文件路径无效。
修复步骤:
- 在读取配置后,用
Environment.ExpandEnvironmentVariables方法解析环境变量占位符:internal XDocument ReturnFileContent(string filename) { string rawPath = _configuration["AppSettings:AccessKeys"]; // 解析环境变量 string documentPath = Environment.ExpandEnvironmentVariables(rawPath); string xmlFilePath = Path.Combine(documentPath, filename); var aux = File.Exists(xmlFilePath); // 现在应该能正确判断 //... } - 验证解析后的路径:可以临时添加输出代码确认路径是否正确,比如:
Console.WriteLine($"解析后的路径:{documentPath}"); - 额外检查:
- 打开命令提示符输入
echo %OneDrive%,确认该环境变量存在并指向正确的OneDrive目录 - 确保程序对
%OneDrive%\\project123\\keys\\文件夹有读取权限
- 打开命令提示符输入
内容的提问来源于stack exchange,提问作者rd1218
相关产品推荐
相关产品推荐

