我之前也有认识不清的地方,原来我认为.net语言(C#、VB.net之类)写的程序通过.net native编译器能生成纯粹的原生代码,可以脱离.net运行环境,现在看来还是不行
uwp应用是原生代码应用,在ARM平台上运行的是ARM二进制版本,在x86上运行的是x86二进制版本,如果你在windows应用商店里看到某应用支持x86设备也支持ARM设备,实际是它有多套二进制版本,下载的时候应用商店会根据当前平台选择合适的一个,并非一套二进制代码适用于多设备。win10 ARM版有点特殊,它也能解释运行基于x86指令的应用,所以ARM二进制应用和x86二进制应用都可以运行。
是你脑子糊涂,一直没搞明白依赖关系,不是UWP基于.net core,而是.net core在windows上的runtime依赖UWP API(也就是WinRT)。你不相信的话看一下win10 system32目录下,windows.*.dll,这些是原生的,windows自带的dlls,不需要安装.net core就有。 简单说,.net语言写的UWP应用,依赖.net的runtime,从而间接依赖WinRT,所以无法在没有WinRT的系统上运行,比如win7、linux之类的。 WinRT,在底层自己实现了一套.net standard(这个东西只是一个标准,不是具体实现)兼容的API,就是windows.*.dll,但它这套实现是原生代码,和.net framework、.net core的实现完全不是一回事。在win10上,用C++、Delphi写的UWP应用程序不需要安装任何.net运行环境就可以直接运行,这是我实际测试过的。
你还能再胡说八道一些么?哪个链接里说“最新的还未发布的uwp版本基于.net standard 2.0,之前的版本普遍的看法是基于未开源版本的.net core”?你把原话引出来。我看你不但不懂英文,连一个谎言需要十个谎言来掩盖这样的中文也不懂了。 "还要x86 on arm做什么"前面告诉过你了,就是在windows ARM版直接运行现有的基于x86的应用程序,你理解不了么。
你看清楚UWP中写的是:Native (C++/WinRT and C++/CX) and managed (.NET Native),只有.net语言写的UWP应用是托管代码
最后再给你科普一次: .net native技术就是给使用.net core框架的程序用的,如果用c++/cx写uwp应用,根本不需要.net native 使用.net core框架功能的托管代码源程序(c#、VB.net写的) -> .net native编译工具 -> uwp二进制可执行文件 深刻领会吧。
[quote=引用 68 楼 早打大打打核战争 的回复:] [quote=引用 66 楼 imarshal 的回复:] 一个快要淘汰的技术,还一本正经讨论了几天,呵呵,没有赢家,到此结束了
[quote=引用 66 楼 imarshal 的回复:] 一个快要淘汰的技术,还一本正经讨论了几天,呵呵,没有赢家,到此结束了
一个快要淘汰的技术,还一本正经讨论了几天,呵呵,没有赢家,到此结束了
呵呵,像你这种我也会,绿色的框表示完全基于,蓝色的框表示部分基于(metadata),黄色的框不表示基于表示安装使用
15,440
社区成员
58,167
社区内容
加载中
试试用AI创作助手写篇文章吧