AWS存在奇怪的版本控制问题

本文关键字:版本控制 问题 存在 AWS | 更新日期: 2023-09-27 17:59:11

我刚刚升级到亚马逊最新的SDK 2.0.13.2。不幸的是,我现在对Amazon.S3.Model.PutObjectRequest类有问题。它拒绝识别Timeout属性。如果我有

Amazon.S3.Model.PutObjectRequest titledRequest = new PutObjectRequest()
{
    BucketName = bucketName,
    Key = newFileName,
    ContentType = packet.ContentType,
    InputStream = new MemoryStream(packet.Buffer)
};

那么一切都很好。但一旦我添加

titledRequest.Timeout = new TimeSpan(0, 15, 0);

仍然编译,但在运行时与一起爆炸

找不到方法:"Void Amazon.S3.Model.PutObjectRequest.set_Timeout(System.Nullable `1)".

特别令人沮丧的是,如果我注释掉设置Timeout的行,并进入设置这一切的方法,我可以单击Amazon.S3.Model.PutObjectRequest,点击F-12,查看类型的元数据,并清楚地看到Timeout属性。然而,如果我试图使用它,甚至在快速查看窗口中查看该房产,我会收到上面的错误。

我尝试过用NuGet清理、重建、卸载和重新安装AWSSDK,甚至重新启动。什么都不管用。

AWS存在奇怪的版本控制问题

在别人遇到类似问题的可能性非常小的情况下添加我自己的答案。

我们的许多不同项目都有非常不同的.net版本——3.5、4.0和4.5。因此,当NuGet试图找出给哪个项目提供哪个版本时,编译器认为我使用的是旧版本的AWSSDK,该版本在PutObjectRequest对象上具有此超时属性,而在运行时,我们使用的是最新版本,没有具有此属性,因此出现了运行时错误。