首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >通用Windows .NET原生和winmd组件库

通用Windows .NET原生和winmd组件库
EN

Stack Overflow用户
提问于 2016-07-04 11:03:08
回答 1查看 437关注 0票数 2

.NET本机工具链如何详细处理托管.winmd组件库?

我知道.NET本机将DLL中的所有托管代码合并到一个可执行文件中,并在将其编译为本机时删除未使用的代码。

但是.winmd管理库使用的是什么算法呢?例如,WinRT中的后台任务(例如音频后台任务)托管在winmd库中,然后这些任务托管在系统提供的本机进程中,该进程动态调用winmd提供的类。它如何与.NET本机概念兼容?

我担心.NET本机可能不会将托管.winmd代码转换为本机代码,而环境将返回到.NET运行时以在托管winmd中执行代码,因此放弃了本机编译的可执行文件的好处。或者它是如何工作的?

请提供关于这件不太清楚的事情的资料。在MSDN文档中,没有关于托管winmd组件库和.NET本机工具链的详细信息。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2016-07-06 02:08:26

我在.NET本地团队工作,我很乐意帮助澄清。

.NET本机将确实将托管的WinMD程序集转换为本机代码,并将其与app合并(从今天起)。为了让后台任务进程定位那些托管WinRT类的本机代码,我们还修复了应用清单,以指向现在为它们提供了本机代码的应用程序DLL。任务后台进程将愉快地加载happily,并使用WinRT激活协议/ABI激活在happily中托管代码中实现的托管WinRT类型。不需要JITting。

正如您所怀疑的,在从本机代码中激活哪些WinRT类时,会遇到一些有趣的挑战。今天,我们保守地将托管WinMD中的所有公共WinMD类视为.NET本机编译器中的编译根,以及从它们可以到达的所有东西。在尺寸上有一些含义,但这是与没有JIT可用的权衡。

谢谢你,张易

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/38183146

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档