使用AmazonSimpleSystemsManagementClient读Parameter Store出现重复类型报错
问题原因
你遇到的报错是项目中存在多个不同版本的AWSSDK.SimpleSystemsManagement程序集引用导致的类型冲突,即使补全命名空间也无法解决同类型多程序集重复定义的问题。
解决方案
- 清理重复的NuGet包引用
打开项目的NuGet包管理界面,在已安装列表中搜索AWSSDK.SimpleSystemsManagement,卸载所有查到的该包后,重新安装统一的最新稳定版本。 - 处理间接依赖引入的版本冲突
如果没有找到直接的重复引用,说明是项目的其他依赖项间接引入了不同版本的SSM包,可通过如下方式解决:- 若你使用的是.NET Framework项目,在
Web.config的<runtime><assemblyBinding>节点下添加程序集绑定重定向规则,将所有版本的SSM包引用强制指向你安装的统一版本(示例中的版本号替换为实际安装的版本):<dependentAssembly> <assemblyIdentity name="AWSSDK.SimpleSystemsManagement" publicKeyToken="885c28607f98e604" culture="neutral" /> <bindingRedirect oldVersion="0.0.0.0-3.7.xxx.x" newVersion="3.7.xxx.x" /> </dependentAssembly> - 若你使用的是.NET Core/.NET 5+项目,在项目
.csproj文件的<PropertyGroup>节点下添加配置自动生成绑定重定向:<AutoGenerateBindingRedirects>true</AutoGenerateBindingRedirects>
- 若你使用的是.NET Framework项目,在
- 清理缓存重新生成
删除项目根目录下的bin、obj缓存文件夹,重启IDE后重新编译项目即可消除报错。
额外优化建议
你当前代码中使用.GetAwaiter().GetResult()同步阻塞调用异步方法,在ASP.NET运行环境下有概率触发线程死锁,建议将方法修改为异步,直接使用await client.GetParameterAsync(request)执行调用。
内容的提问来源于stack exchange,提问作者Anjali
相关产品推荐
相关产品推荐

