Windows 8 使用WinRT API编写的应用程序是否可以在Windows 8 x86、Windows 8 for ARM和WP8上运行?

Windows 8 使用WinRT API编写的应用程序是否可以在Windows 8 x86、Windows 8 for ARM和WP8上运行?,windows-8,windows-phone-8,windows-runtime,windows-rt,Windows 8,Windows Phone 8,Windows Runtime,Windows Rt,另外,只有Metro风格的应用程序可以在Windows8ARM上运行,而Metro风格的应用程序只能使用WinRTAPI编写 根据这条线索 WindowsPhone8也使用ARM架构。因此,如果我们的应用程序是用WinRT API编写的,那么它可以在Windows 8 x86、Windows 8 for ARM和WP8上运行,对吗?Windows Phone实现了Windows 8 WinRT API的一个子集,称为WinPRT(p==Phone)。您可以找到一个很好的概述,其中包含要找到的支持

另外,只有Metro风格的应用程序可以在Windows8ARM上运行,而Metro风格的应用程序只能使用WinRTAPI编写

根据这条线索


WindowsPhone8也使用ARM架构。因此,如果我们的应用程序是用WinRT API编写的,那么它可以在Windows 8 x86、Windows 8 for ARM和WP8上运行,对吗?

Windows Phone实现了Windows 8 WinRT API的一个子集,称为WinPRT(p==Phone)。您可以找到一个很好的概述,其中包含要找到的支持Win(P)RT API的精确列表


警告-Win8上的XAML与WP8上的XAML相似,但不同,因此需要为WP重写很多UI。您真正想做的是阅读这篇文章,了解在这些平台之间开发应用程序所涉及的许多注意事项和技术。

不完全如此。WinRT和Windows Phone运行时的情况类似于WPF/Silverlight。有重叠,但不是100%覆盖。为了解决这个问题,微软鼓励使用可移植类库来针对多个平台(因为每个平台都有自己的运行时)。有关PCL的更多信息:

此外,即使您设法让大多数类在可移植类库下工作,您仍然必须为每个平台编写单独的用户界面(PCL不支持共享UI)。虽然这看起来令人不安,但实际上比你想象的更为必要。以下是微软在分享XAML用户界面方面的建议

这不应该被视为是一个完整的障碍,以分享之间的信息 Windows Phone 8和Windows 8。明确的指导原则是设计和 为每个平台分别构建UI,包括设计 每一项的准则。从技术上讲,规避这些风险是可能的 障碍。您可以在页面初始化期间从创建UI 代码。您可以在运行时从资源中加载特定于平台的XAML 并将其作为字符串注入页面。然而,这些都没有 技术的规模和他们如何使你的核心资产建设 你的应用程序对你的用户来说是一项乏味且容易出错的任务。你的代码 分享投资会给你更大的回报 通过尝试共享应用程序逻辑、数据模型、视图模型, 等等

基本上,微软是说专门针对平台设计用户界面,因为在手机上运行的应用程序(较小的屏幕)的用户界面应该与在平板电脑/桌面上运行的应用程序(较大的屏幕)的用户界面不同



至于在不同平台上运行WinRT应用程序。。。是的,你可以。微软表示,用WinRT编写的应用程序可以在Windows 8和WOA(ARM上的Windows)上运行。下面是一个来自微软的例子。但是,我的答案的第一部分仍然有效。。。如果要针对不同的运行时(WinRT/Windows Phone运行时)。。。然后使用可移植类库。选择“Windows应用商店”和“Windows Phone 8”将允许您的代码在Windows 8 x86/x64/ARM和Windows Phone 8上运行。

可移植类库的工作方式超出了此问题(和注释)的范围。不用说,这是你在你的处境中所寻找的。我已经更新了我的答案,添加了一个链接,链接到关于PCL的更多信息。是的,我知道PCL。我问使用WinRT API是否可以使我的应用程序部署在Windows 8 x86、Windows 8 ARM和WP8上。您提到了PLC,但“可移植类库项目支持.NET Framework中的程序集子集”!!!温特是管理型和国家型的混合体,我想我误解了你的部分问题。我已经更新了我的答案来解释这一点。