UWP APP:Relase Config中的GetPublicKey()不起作用

时间:2019-02-26 19:48:21

标签: uwp

我用exe项目和一个类库项目构建了一个UWP项目,在其中我正在使用

读取已签名程序集的公钥。

var assembly = typeof(MyClass).GetTypeInfo().Assembly; byte[] bytes = assembly.GetName().GetPublicKeyToken();

只要我使用调试配置,效果就很好。编译并以发布模式运行后,字节为空。 我取消选中“使用.Net本机工具链编译”复选框,现在它可以工作了。我想知道为什么,并且,由于该配置,我是否会有副作用?

1 个答案:

答案 0 :(得分:0)

对于.NET Native Toolchain,将删除元数据,我们将使用元数据来反映对象。

如果需要使用反射功能,则应将代码添加到Default.rd.xml文件中。

<Directives xmlns="http://schemas.microsoft.com/netfx/2013/01/metadata">
  <Application>
           <Assembly Name="*Application*" Dynamic="Required All" />
  </Application>
</Directives>

请参见Runtime Directives (rd.xml) Configuration File Reference

https://docs.microsoft.com/en-us/dotnet/framework/net-native/reflection-and-net-native

如果您会读中文,请阅读我的blog