如果使用.NET Native

时间:2015-11-11 16:43:33

标签: windows-runtime uwp .net-native

我有使用System.Reflection.Module类型的UWP代码。当应用程序在DEBUG模式下编译时,一切正常,我可以获得模块的自定义属性。但当我切换到RELEASE模式并使用.NET Native编译应用程序时,所有这些属性都会消失。

2 个答案:

答案 0 :(得分:4)

在您的应用程序通过.Net Native工具链(ilc.exe)运行后,您会注意到您的应用程序二进制文件没有像您想象的那样出现。这是因为您的所有.Net代码(包括您的应用程序所需的.Net Framework)都已折叠成单个二进制文件.dll。我们这样做是因为当编译器可以查看程序的整个状态时,许多优化步骤的效果会更好。它还可以加快您的开始时间,因为在磁盘上找到一堆不同的文件并不在热门的路径上。

鉴于上述所有内容,有必要为Assembly属性提出一个策略。最后,更容易消除支持,而不是想办法让冲突的东西很好地融合。

如果您的方案只能通过这些属性实现,我们很乐意了解它。

答案 1 :(得分:1)

请查看以下链接:

Reflection and .NET Native

NET Native Deep Dive: Help! I Hit a MissingMetadataException

您可以通过更新.rd.xml(运行时指令配置文件)来修复此问题,如上一篇文章中所述。

有关信息:

Runtime Directives (rd.xml) Configuration File Reference