【问题标题】:Creating desktop applications for Windows RT?为 Windows RT 创建桌面应用程序?
【发布时间】:2012-11-21 07:34:10
【问题描述】:

我已安装 Windows Phone SDK 8.0,但没有适用于桌面 Windows RT 应用程序的项目类型。

如何开发此类应用程序?

【问题讨论】:

    标签: visual-studio windows-phone


    【解决方案1】:

    Windows RT 与 Phone SDK 无关 - 它来自主桌面开发环境。

    Microsoft 不允许为 Windows RT 构建桌面应用程序。 RT 桌面仅限于使办公应用程序工作,但不包括完整的 Windows 功能。

    要开发 Windows 8 桌面应用程序,您可以像过去用于桌面应用程序一样使用 Visual Studio。

    要构建一个 Windows 应用商店应用程序,您可以在 c# 下选择 Windows 应用商店。 Tutorials 位于微软。在那里,您将获得一系列模板,您可以根据这些模板构建您的应用程序。我希望这些模板也将构建可以在 Windows RT 设备上运行的应用程序。 (我还没有测试过)

    【讨论】:

    • 是的,这些模板可用于 RT 设备,但不能用作桌面应用程序,只能用作 Metro UI 应用程序。我需要创建桌面应用程序。我想将我当前的适用于 Windows 8(及更早版本)的 .NET 应用程序重新编译为 RT。
    【解决方案2】:

    为 Windows RT 创建桌面应用程序?

    从技术上讲,您不能为 Windows RT 开发桌面应用程序。它没有得到微软的官方支持。不过,您可以为它开发Store Applications。商店应用被称为Metro Apps,但微软因使用该名称而面临法律风险(请参阅Microsoft to drop 'Metro' name for Windows 8)。

    要绕过限制,请参阅Can ARM desktop programs be built using visual studio 2012。但是,如果您提交应用,您的应用可能会被 Microsoft 的 Windows 应用商店拒绝。

    ...不是桌面 Windows RT 应用程序的项目类型。

    Windows RT 在那里 - 你想要一个 Windows 应用商店应用程序:

    Windows 应用商店应用项目将定义WINAPI_FAMILY=WINAPI_FAMILY_APP。它将拥有三个平台:X86X64ARM。 Windows RT Pro 是X64。 Windows RT 是ARM。我不确定X86 被归类为什么。对于开发人员和工程师来说,这一切都只是WINAPI_FAMILY=WINAPI_FAMILY_APP 和三个平台。在 Visual Studio 下 Pro 和非 Pro 没有区别(有些人放弃)。

    有关WINAPI_FAMILY 和平台检测的一些好读物,请参阅 Chuck Walbourn 的三部分系列文章Dual-use Coding Techniques for Games

    Windows Phone 和 Windows Store 的后端区别在于:

    Windows RT 使用位于

    的编译器
    • %VSINSTALLDIR%\VC\bin\x86_ARM\CL.exe

    Windows Phone 使用位于

    的编译器
    • %VSINSTALLDIR%\VC\WPSDK\WP80\bin\x86_arm\link.exe

    显然,路径会随着平台的变化而变化。但链接器(link.exe)和其他工具(如 lib.exe)与编译器位于同一目录中。

    Windows RT (ARM) 环境标记为 Visual Studio 2012 ARM Cross Tools Command Prompt。您可以在开始(剩下的部分)→ Program FilesVisual Studio 2012Visual Studio Tools 找到它>:

    Windows Phone (ARM) 的环境标记为 Visual Studio 2012 ARM Phone Tools Command Prompt

    同样,Windows Phone (X86) 的环境标记为 Visual Studio 2012 X86 Phone Tools Command Prompt;和 Windows RT Pro (X64) 标记为 Visual Studio 2012 X64 Cross Tools Command Prompt

    所有命令提示符都设置环境,所以INCLUDELIBPATHPATH 等已准备好进行命令行开发。迄今为止,这就是我所使用的全部内容,因为我一直在移植库。我还没有将 Visual Studio 用于项目。

    您还需要查看 Can ARM desktop programs be built using visual studio 2012 中的 _ARM_WINAPI_PARTITION_DESKTOP_SDK_AVAILABLE=1 定义。

    另请参阅 Jason Zander 在 MSDN 上的 What you need to know about developing for Windows on ARM (WOA)

    最后,请参阅 XDA 开发者论坛上的Desktop apps ported to Windows RT

    【讨论】:

      【解决方案3】:

      您可以破解 Visual Studio 2012 及更高版本,以允许您在 Windows 桌面应用程序中引用 RT。

      1.) 在 Visual Studio 中卸载您的项目

      2.) 将 TargetPlatformVersion 属性添加到项目中:

      <PropertyGroup>
        <TargetPlatformVersion>8.0</TargetPlatformVersion>
      </PropertyGroup>
      

      3.) 重新加载项目。

      4.) 转到“添加引用...”

      5.) 现在左侧面板上应该有一个额外的 Windows 选项,允许您添加 Windows 核心引用。

      欲了解更多信息,请参阅Using Windows 8* WinRT API from desktop applications

      【讨论】:

        【解决方案4】:

        Windows Phone 8 和 Windows 8 是两个独立的产品,需要 2 个独立的 SDK 来开发。 Windows Phone 8 只能在移动设备上运行,而 Windows 8 可以在台式机、笔记本电脑和平板电脑上运行。

        构建 Windows 8 应用程序所需要做的就是一台安装了 Windows 8 和 Visual Studio 2012 的机器。您可以使用 Visual Studio Express(免费)版的 Windows 8 Enterprise 的 90 天评估来构建此类应用程序。如果您是学生,您可以通过 Dreamspark 计划免费获得完整版的 Visual Studio。

        【讨论】:

        • 我需要为 Windows RT 创建桌面应用程序。不适用于 8 或电话 8。
        • 您不能为 Windows RT 创建桌面应用程序 - 只有 Microsoft 预先加载和/或预先批准的某些应用程序才能在 Windows RT 的桌面环境中运行。不过,您可以为 Windows 8 创建桌面应用程序。
        • 它必须是 Windows 8 还是我可以在 Windows 7 上使用 Visual Studio 2012?
        • 您需要 Windows 8 才能运行 Visual Studio 2012。
        • 您可以在 Windows 7 上运行 Visual Studio,但不能在 Windows 7 上为 Windows 8 进行开发。
        【解决方案5】:

        要开发 Windows 应用商店应用,您需要 Visual Studio 2012

        Windows Phone SDK 附带的 Visual Studio Express 没有用于开发 Windows 应用商店应用的模板。

        【讨论】:

        • 我下载了 2012 Express(它包含在 Phone 8.0 SDK 中)并且没有桌面应用程序的模板。如何为 Windows RT 创建桌面应用程序?
        • 您需要在此处安装另一个专用于 Windows RT 的 VS Express go.microsoft.com/fwlink/?LinkID=256018
        • 对不起,我没有找到 RT SDK。只有 Web、Windows 8、Desktop、Phone 和 TF 捆绑包。
        猜你喜欢
        • 2021-07-19
        • 2012-06-06
        • 2013-01-19
        • 2011-07-29
        • 2019-10-19
        • 2017-03-30
        • 2015-06-02
        • 1970-01-01
        • 2022-07-01
        相关资源
        最近更新 更多