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

从S3存储桶下载文件时遇AWSSDK.S3.CodeAnalysis.dll缺失错误求助

编译错误:无法找到AWSSDK.S3.CodeAnalysis.dll元数据文件的解决方法

环境说明

  • Visual Studio 2019(版本16.11.5)
  • .NET Framework 4.8.04084
  • 已安装AWSSDK.S3(版本3.7.101.1)和AWSSDK.Core(版本3.7.101.1)NuGet包

错误详情

Severity    Code    Description Project File    Line    Suppression State
Error       Metadata file '..\packages\AWSSDK.S3.3.7.101.1\analyzers\dotnet\cs\AWSSDK.S3.CodeAnalysis.dll' could not be found   ST_35de80d034b24af7b858c7e96ac14399 C:\Windows\TEMP\Vsta\SSIS_ST130\Vsta3XuAb1HyMUSPUWmD_oVLkA\VstaCvKhS58I30S1_G1CbhqG2Q\CSC   0   

NuGet包属性

  • AWSSDK.S3:版本3.7.101.1,目标框架为.NET Framework 4.8,状态为已安装
  • AWSSDK.Core:版本3.7.101.1,目标框架为.NET Framework 4.8,状态为已安装

原使用代码

// 以下代码使用AWS凭据从S3存储桶下载文件,已提供存储桶名称、密钥和访问密钥(示例为占位符)
public void Main()
{
    // 添加从S3存储桶下载文件的代码
    var AwsImportFilePathParcel = "https://s3.console.aws.amazon.com/s3/buckets/my-bucket-name?region=us-east-2&tab=objects";
    var credentials = new BasicAWSCredentials("myaccesskey", "mysecretkey");
    // 设置存储桶区域
    IAmazonS3 client = new AmazonS3Client(credentials, RegionEndpoint.USEast1);
    // 获取S3中的文件
    S3DirectoryInfo info = new S3DirectoryInfo(client, "my-bucket-name", AwsImportFilePathParcel);
    S3FileInfo[] s3Files = info.GetFiles(AwsImportFilePathParcel);
    // 从S3存储桶下载文件
    foreach (var fileInfo in s3Files)
    {
        // 将S3存储桶中的文件下载到本地目录
        var localPath = Path.Combine("C://Users//Desktop/", fileInfo.Name);
        // 将文件复制到本地目录
        fileInfo.CopyToLocal(localPath);
    }

    Dts.TaskResult = (int)ScriptResults.Success;
}

解决方法

一、修复NuGet包相关问题

  1. 清理NuGet缓存并重新安装包
    • 打开Visual Studio,依次点击「工具」->「选项」->「NuGet包管理器」->「常规」,点击「清空所有NuGet缓存」
    • 右键项目选择「管理NuGet包」,卸载AWSSDK.S3和AWSSDK.Core,重新安装对应版本(或尝试安装与.NET Framework 4.8兼容的最新版本)
  2. 检查项目文件引用
    • 右键项目选择「编辑.csproj」,查找是否存在指向AWSSDK.S3.CodeAnalysis.dll的无效引用节点,若存在则删除
    • 确认所有NuGet包的<HintPath>路径与本地packages目录中的实际文件位置一致

二、修复Visual Studio环境

打开Visual Studio安装程序,选择「修改」,确保「.NET Framework 4.8开发工具」和「NuGet包管理器」组件已正确安装,必要时点击「修复」

三、修正代码逻辑错误(避免后续运行问题)

原代码存在多处逻辑错误,会导致运行异常,修正后示例如下:

// 从AWS S3存储桶下载文件
public void Main()
{
    // 存储桶名称(替换为实际名称)
    string bucketName = "my-bucket-name";
    // S3存储桶内的前缀路径(空字符串表示根目录,若要指定文件夹则填写如"folder/subfolder/")
    string s3Prefix = "";
    // 本地下载目录(替换为实际路径)
    string localDownloadPath = @"C:\Users\Desktop";

    // AWS凭据(替换为实际凭据)
    var credentials = new BasicAWSCredentials("myaccesskey", "mysecretkey");
    // 存储桶所在区域(与实际区域一致,此处为us-east-2)
    IAmazonS3 client = new AmazonS3Client(credentials, RegionEndpoint.USEast2);

    // 初始化S3目录信息
    S3DirectoryInfo s3DirInfo = new S3DirectoryInfo(client, bucketName, s3Prefix);
    // 获取目录下所有文件(*表示匹配所有文件)
    S3FileInfo[] s3Files = s3DirInfo.GetFiles("*");

    foreach (var fileInfo in s3Files)
    {
        string localFilePath = Path.Combine(localDownloadPath, fileInfo.Name);
        // 下载文件到本地
        fileInfo.CopyToLocal(localFilePath);
    }

    Dts.TaskResult = (int)ScriptResults.Success;
}

内容的提问来源于stack exchange,提问作者MRBasun

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.15 09:45:33