【问题标题】:If NETFX_CORE is for Windows 8, what is for Windows Phone 8?如果 NETFX_CORE 适用于 Windows 8,那么什么适用于 Windows Phone 8?
【发布时间】:2012-11-15 16:16:55
【问题描述】:

我理解使用 NETFX_CORE 指令,如下所示:

#if NETFX_CORE 
    // Windows 8
#else 
    // Windows Phone 8
#endif

更多信息:http://msdn.microsoft.com/en-us/library/windowsphone/develop/jj714084(v=vs.105).aspx

但是是否有特定于 Windows Phone 8 的指令?

【问题讨论】:

  • 该链接用于 .NET 开发,但无论哪种方式都没有标记问题。我说得对吗,这主要是关于 .NET 的?原生开发会有不同的定义。
  • 嗯,NETFX_CORE 有点暗示技术,如果你错过了,对不起。

标签: .net windows-8 windows-phone-8 conditional-compilation


【解决方案1】:

是的,Windows Phone 指令是:

#if WINDOWS_PHONE

这已记录在 here,但我很惊讶它没有被提及 here。我还在一些代码中对此进行了测试,并且可以正常工作。

【讨论】:

  • 对于面向 Windows 8.1 和 Windows Phone 8.1 的项目,这些将是 WINDOWS_APP 和 WINDOWS_PHONE_APP。
【解决方案2】:

WP8 应使用开发人员引入的自定义条件编译标志。阅读有关此确切主题的更多信息here。诺基亚有一篇专门针对coding for both WP7 and WP8 的文章,我强烈建议您查看所有技术,看看哪种技术最适合您使用。

定义条件编译符号:

  1. 右键单击 WP 8 项目并选择属性。 打开
  2. Project Designer 的构建页面并将 WP8 插入 Conditional 编译符号。在此之后,它们应该包含类似 这个:SILVERLIGHT;WINDOWS_PHONE;WP8

这是内联代码示例

// Separate implementations for different OS versions
#if WP8
    // code using enhancements introduced in Windows Phone 8 
#else
    // code using Windows Phone OS 7.1 features 
#endif


// A new Windows Phone 8 feature
#if WP8
    // code using new Windows Phone 8 feature
#endif 

【讨论】:

【解决方案3】:

据我所知,没有这样的指令。但如果没有,你可以使用:

#if !NETFX_CORE 
    // Windows Phone 8
#endif

【讨论】:

  • 哈哈!不完全是我的意思,但这很有趣。
【解决方案4】:

但是是否有特定于 Windows Phone 8 的指令?

您可以定义自己知道的预处理器指令。 WINDOWS_PHONE 恰好由 Windows Phone 项目的 Visual Studio 项目模板定义。

同样适用于 DEBUG、TRACE 以及您可能拥有的任何自定义项,例如 EXTENSIVE_LOGGING 或 LOOKING_FOR_A_CATBUS

【讨论】:

    猜你喜欢
    • 2012-11-30
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-01-19
    • 1970-01-01
    • 1970-01-01
    • 2015-02-25
    • 1970-01-01
    相关资源
    最近更新 更多