我用exe项目和一个类库项目构建了一个UWP项目,在其中我正在使用
读取已签名程序集的公钥。 var assembly = typeof(MyClass).GetTypeInfo().Assembly;
byte[] bytes = assembly.GetName().GetPublicKeyToken();
只要我使用调试配置,效果就很好。编译并以发布模式运行后,字节为空。 我取消选中“使用.Net本机工具链编译”复选框,现在它可以工作了。我想知道为什么,并且,由于该配置,我是否会有副作用?
答案 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