You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

AWS Lambda C#访问部署包内CSV文件报FileNotFoundException的原因是什么?

AWS Lambda C# 访问打包CSV文件报错的常见原因
  • CSV文件未配置复制规则
    这是最高发的诱因。在IDE中右键点击项目内的100_record.csv文件打开属性面板,确认「复制到输出目录」属性设置为如果较新则复制或始终复制,默认的「不复制」配置会导致文件不会被打入部署包,Lambda运行环境自然无法找到。
  • 大小写不匹配
    AWS Lambda运行于Linux环境,文件系统对大小写严格敏感。需要确认代码中写的文件名100_record.csv和实际文件的命名完全一致,包括大小写规则,本地Windows开发环境大小写不敏感可以正常读取的文件,部署到Lambda后就可能因为大小写差异触发找不到文件的错误。
  • 部署规则排除了CSV文件
    检查项目的构建配置、.gitignore规则或Lambda部署工具的过滤规则,确认没有将.csv后缀的文件标记为排除项,避免构建部署阶段自动过滤掉目标文件。
  • 路径获取逻辑兼容性问题
    部分.NET Lambda运行时版本中AppDomain.CurrentDomain.BaseDirectory的返回值不符合预期,可以替换为通过程序集定位根目录的方式,示例代码如下:
    var assemblyLoc = Assembly.GetExecutingAssembly().Location;
    var basePath = Path.GetDirectoryName(assemblyLoc);
    using (var reader = new StreamReader(Path.Combine(basePath, "100_record.csv") )) 
    using (var csv = new CsvReader(reader, CultureInfo.InvariantCulture))
    {
        var records = csv.GetRecords<BizItem>().ToList();
        if (records.Count < 10)
        {
           Console.WriteLine("processing less than 10 items");
        } 
    }
    
  • 文件存放层级不匹配
    如果CSV文件存放在项目的子目录下(比如Resources文件夹),拼接路径时需要补充对应的层级,示例:Path.Combine(basePath, "Resources/100_record.csv")。

内容的提问来源于stack exchange,提问作者Shady Yahia Al-Sharabasy

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.09.27 07:06:05