Windows runtime 如果应用程序使用.NET本机编译,则GetCustomAttributes方法(System.Reflection.Module)不返回任何内容

Windows runtime 如果应用程序使用.NET本机编译,则GetCustomAttributes方法(System.Reflection.Module)不返回任何内容,windows-runtime,uwp,.net-native,Windows Runtime,Uwp,.net Native,我有一个使用System.Reflection.Module类型的UWP代码。当应用程序在调试模式下编译时,一切正常,我可以获得模块的自定义属性。但当我切换到发布模式并使用.NET Native编译应用程序时,所有这些属性都会消失。请检查以下链接: 您可能可以通过更新.rd.xml(运行时指令配置文件)来解决此问题,如前一篇文章中所述 供参考: 请检查以下链接: 您可能可以通过更新.rd.xml(运行时指令配置文件)来解决此问题,如前一篇文章中所述 供参考: 在应用程序通过.Net本机工

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

请检查以下链接:

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

供参考:


请检查以下链接:

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

供参考:


在应用程序通过.Net本机工具链(ilc.exe)运行后,您会注意到应用程序二进制文件并不像您天真地期望的那样出现。这是因为你所有的.Net代码(包括你的应用程序所需的.Net框架)都被折叠成一个二进制.dll。我们这样做是因为当编译器可以查看程序的整个状态时,许多优化步骤工作得更好。它还可以加快启动时间,因为在磁盘上查找大量不同的文件并不在热路径上

考虑到以上所有因素,有必要为程序集属性制定一个策略。最后,消除支持要比找到一种方法使冲突的东西很好地融合起来容易得多


如果您有一个只能通过这些属性实现的场景,我们希望了解更多信息。

在您的应用程序通过.Net本机工具链(ilc.exe)运行后,您会注意到您的应用程序二进制文件并不像您天真地期望的那样出现。这是因为你所有的.Net代码(包括你的应用程序所需的.Net框架)都被折叠成一个二进制.dll。我们这样做是因为当编译器可以查看程序的整个状态时,许多优化步骤工作得更好。它还可以加快启动时间,因为在磁盘上查找大量不同的文件并不在热路径上

考虑到以上所有因素,有必要为程序集属性制定一个策略。最后,消除支持要比找到一种方法使冲突的东西很好地融合起来容易得多


如果您有一个只能通过这些属性实现的场景,我们希望了解更多信息。

我遇到的问题是,在同一时间,我可以获得汇编的自定义属性(无需任何修改)。所以[module:MyAttribute]不起作用,但是[assembly:MyAttribute]工作得很好。我的问题是,在同一时间,我可以为assembly获取自定义属性(无需任何修改)。所以[module:MyAttribute]不起作用,但是[assembly:MyAttribute]工作得很好。我有一些代码依赖于这个属性。我现在使用另一种方法。谢谢大家!@马特:你能澄清这个答案吗?也就是说,您能否确认这仅适用于程序集级别的属性,并且类型和成员上的属性仍然受支持并按预期工作?我们希望所有其他属性都能正常工作。我们保留有关它们应用位置的完整元数据信息,为它们可能拥有的任何构造函数生成代码等。一如既往,如果您有任何问题,请向我发送邮件dotnetnative@microsoft.com. 很乐意帮助。我有一些依赖于此属性的代码。我现在使用另一种方法。谢谢大家!@马特:你能澄清这个答案吗?也就是说,您能否确认这仅适用于程序集级别的属性,并且类型和成员上的属性仍然受支持并按预期工作?我们希望所有其他属性都能正常工作。我们保留有关它们应用位置的完整元数据信息,为它们可能拥有的任何构造函数生成代码等。一如既往,如果您有任何问题,请向我发送邮件dotnetnative@microsoft.com. 很乐意帮忙。