System.Reflection.MemberInfo.get_MetadataToken()'无法在当前平台

时间:2016-10-31 23:21:13

标签: .net xamarin windows-10-universal portable-class-library

以下是例外:

Exception thrown: 'System.InvalidOperationException' in mscorlib.ni.dll
Additional information: The API 'System.Reflection.MemberInfo.get_MetadataToken()' cannot be used on the current platform. See http://go.microsoft.com/fwlink/?LinkId=248273 for more information.

   at System.Reflection.RuntimeMethodInfo.Invoke(Object obj, BindingFlags invokeAttr, Binder binder, Object[] parameters, CultureInfo culture)

我的设置

我有一个PCL项目(​​Profile7),用于常见的Xamarin表单代码。 Android,iOS和UWP项目在同一解决方案中引用PCL。 PCL引用从中抛出异常的第三方库(IdentityModel.OidcClient Nuget包)。 Android项目按预期运行。 UWP项目抛出异常。发生异常是因为在IdentityModel.OidcClient中的日志记录代码中使用了dynamic关键字。我也在作者的Github网站上创建了一个问题(https://github.com/IdentityModel/IdentityModel.OidcClient/issues/43)。

有趣的是,作者有一个直接引用IdentityModel.OidcClient(没有PCL)的示例UWP应用程序,它运行正常。似乎作者的应用程序与我的应用程序之间的区别在于使用PCL。

我已尝试将目标个人资料更改为111,但无济于事。我该如何解决这个问题?

更新

IdentityModel.OidcClient PCL项目使用配置文件259.我将我的PCL项目设置为配置文件259,但异常仍然存在。

1 个答案:

答案 0 :(得分:0)

将Visual Studio的Xamarin升级到4.2.719解决了这个问题。无论是那个还是重启。 :)