添加支持Azure Blob Storage的NLog后Xamarin Android Release构建失败
问题根因
你当前的链接描述文件配置错误,AuthenticationContextIntegratedAuthExtensions类型没有补充完整的命名空间前缀,导致Xamarin.Android链接器无法匹配到要保留的目标类型,所以配置不生效。
修复步骤
- 替换链接描述文件的内容为以下配置:
<linker> <assembly fullname="Microsoft.IdentityModel.Clients.ActiveDirectory"> <type fullname="Microsoft.IdentityModel.Clients.ActiveDirectory.AuthenticationContextIntegratedAuthExtensions"> <method name="AcquireTokenAsync" /> </type> </assembly> <!-- 报错未解决时可追加以下配置 --> <assembly fullname="Microsoft.Azure.Services.AppAuthentication"> <type fullname="Microsoft.Azure.Services.AppAuthentication.AdalAuthenticationContext" preserve="all" /> </assembly> </linker>
- 确认配置有效性:
- 链接描述文件必须放在Android平台项目的根目录下,不能放在共享项目或iOS项目中
- 右键点击该文件,确认生成操作(Build Action) 属性已设置为
LinkDescription,注意大小写不能出错 - 清理项目缓存,删除所有bin、obj文件夹后再执行Release模式构建
如果上述配置还是无法解决问题,可以临时将Android项目的链接器行为修改为「仅链接SDK程序集」,跳过第三方用户程序集的链接操作,即可直接规避该报错。
内容的提问来源于stack exchange,提问作者Sandy Currie
相关产品推荐
相关产品推荐

