我刚刚升级到亚马逊的最新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)'。
特别令人沮丧的是,如果我注释掉设置超时的行,并进入设置此项的方法,我可以点击Amazon.S3.Model.PutObjectRequest
,点击F-12并查看类型的元数据,并清楚地看到Timeout属性。然而,如果我尝试使用它,或者甚至在快速监视窗口中查看属性,我会得到上面的错误。
我尝试使用NuGet清理,重建,卸载和重新安装AWSSDK,甚至重新启动。什么都行不通。
答案 0 :(得分:0)
在其他人遇到类似问题的可能性非常小的情况下添加我自己的答案。
我们的许多不同项目的.net版本为3.5,4.0和4.5。因此,当NuGet试图找出哪个版本来提供哪个项目时,结果发现编译器认为我在旧版本的AWSSDK上,在PutObjectRequest对象上有这个超时属性,而在运行时我们遇到了最新版本,不具有此属性,因此运行时错误。