以下是 Windows Phone SDK 8.0 的发行说明。Windows Phone SDK 8.0 包含您开发 Windows Phone 应用所需要的工具。该发行说明为您提供与使用 Windows Phone SDK 8.0 开发 Windows Phone 应用相关的已知问题。
发行说明包含下列几节。
新增功能
找出 Windows Phone SDK 8.0 的新增功能中 SDK 的新增功能。
早期版本
Windows Phone SDK 的早期版本的发行说明位于以下位置。
Windows Phone Developer Tools 7
已知问题
下列几节包含 Windows Phone SDK 8.0 中已知问题的详细信息。
卸载
卸载 Windows Phone SDK 8.0 后,Windows Phone SDK 7.1 状态可能变得不稳定。
用户影响: Windows Phone SDK 7.1 可能会不稳定。
解决方法: 卸载 Windows Phone SDK 8.0 后,卸载 Windows Phone SDK 7.1.1 更新,卸载 Windows Phone SDK 7.1,然后重新安装 Windows Phone SDK 7.1,并重新安装 Windows Phone SDK 7.1.1 更新。
卸载 Visual Studio 2012 后,本机探查器可能会停止工作。
用户影响: 您无法使用本机探查器。
解决方法: 通过从“控制面板”的“程序和功能”中选择 Windows Phone SDK 8.0 来修复它。
Windows Phone 模拟器
当您在 Windows Phone 7.1 模拟器上后退或快进时,H.264 音频不与视频同步。
用户影响: 音频和视频同步可能在 Windows Phone 7.1 模拟器上出现断开。
解决方法: 无。
如果在记录开始前调用 H.264 video-capture API (Windows.Phone.Media.Capture.KnownCameraAudioVideoProperties.H264*),您的应用可能会在记录期间崩溃。
用户影响: 应用将意外关闭,且模拟器将返回到“开始”。
解决方法: 使用 Windows Phone 8 设备进行调试。
模拟器不支持 ICameraCaptureDeviceNative::GetPreviewBufferTexture 本机相机方法。
用户影响: 如果在模拟器上运行的同时,调用 ICameraCaptureDeviceNative::GetPreviewBufferTexture,将发生 0x80004001 错误。
解决方法: 使用 Windows Phone 8 设备进行调试。
模拟器不支持 Windows.Phone.Media.Capture.CaptureSequence.Frames[0].AppliedProperties。
用户影响: 调用 AppliedProperties 时,引发了 ObjectDisposedException。
解决方法: 使用 try/catch 语句围绕 AppliedProperties 调用来捕捉该异常。
模拟器相机可能未以预期的方向保存照片。
用户影响: 模拟器相机中的照片可能会以错误方向显示和/或被垂直翻转。
解决方法: 使用 Windows Phone 8 设备进行调试。
如果应用创建了 Direct3D 图形设备并要求高于 9_3 的功能级别,将仅在模拟器上而不是设备上成功创建该设备。
用户影响: 当应用在手机上运行时,它无法使用高于 9_3 的功能级别创建 Direct3D 图形设备,隐藏要求更高功能级别功能的某些代码可以在模拟器上工作,但却无法在物理设备上工作。
解决方法: 使用 Windows Phone 8 设备测试特定于 Direct3D 的代码。或者,在创建新项目时,修改 Direct3DBase.cpp,以从 D3D11CreateDevice 函数的 pFeatureLevel 参数提供的 D3D_FEATURE_LEVEL 值的数组中,删除除 9_3 外的所有功能级别。
如果应用在 WMAppManifest.xml 文件中列出了 ID_REQ_GYROSCOPE 或 ID_REQ_MAGNETOMETER 硬件要求,则您无法将应用部署到模拟器中。
用户影响: 如果您尝试将已在 WMAppManifest.xml 文件中设置了陀螺仪、罗盘或近场通信 (NFC) 功能的应用部署到模拟器,您将收到下列错误信息:Installation of the application failed.发生运行时错误。修复 WMAppManifest.xml 文件中的功能。
解决方法: 如果应用需要这些要求,请在 Windows Phone 8 设备上,而不是在模拟器上测试该应用。
Visual Studio
地图控件 (Microsoft.Phone.Maps.* namespaces) 的 IntelliSense 文件没有包含在 SDK 中。
用户影响: 当您正在使用 Microsoft.Phone.Maps.* 命名空间中的 API 时,IDE 中未显示任何的 IntelliSense。
解决方法: 从下列位置下载用于Map控件的 IntelliSense .zip 文件:
http://go.microsoft.com/fwlink/?LinkId=267924
解压缩已下载文件并选择与已安装的 SDK 语言版本相对应的 IntelliSense 文件。
将选定的文件复制到 SDK 安装目录中的以下位置:
<installDir>\Reference Assemblies\Microsoft\Framework\WindowsPhone\v8.0
当您尝试将不受支持的引用添加到 Windows Phone 项目的可移植库项目时,会显示不正确的错误消息。
用户影响: 您可能会看到不正确的错误信息,如下所示:
Failed to add reference.无法添加指向‘PortableViewModel40’的引用。用户已取消并退出保存对话框(来自 HRESULT 的异常:0x8004000C (OLE_E_PROMPTSAVECANCELLED))
解决方法: 转到可移植类库项目属性中的“库”选项卡,并修改项目目标框架以支持您想要引用的 Windows Phone 版本。
使用 Visual Studio 2012中的代码时,请使用向上键和向下键在未按预期工作的 IntelliSense 列表中选择项目。
用户影响: 使用 Visual Studio 2012 中的 IntelliSense 时,您可能很难使用向上键和向下键在 IntelliSense 列表中选择 IntelliSense 项目。
解决方法: 请按 ESC 键关闭当前的 IntelliSense 列表并释放光标。
对象浏览器不会显示特定于手机项目的 Windows.winmd 或 Platform.winmd 内容。
用户影响: Visual Studio 可能会冻结,对象浏览器不显示 Windows.winmd 或 Platform.winmd 的内容。在某些情况下,对象浏览器可能会显示正确信息,然而,使用对象浏览器导航到 Windows.winmd 或 Platform.winmd 文件无法正常工作。
解决方法: 当前无可用解决方法,但 Visual Studio 更新已计划了一种解决方案。
当后台线程上发生资源争用时,System.Threading.ReaderWriterLockSlim.TryEnterWriteLock 方法将引发 MethodAccessException。
用户影响: ReaderWriterLockSlim.TryEnterWriteLock 方法将在正常使用期间接收 MethodAccessExceptions。将显示以下异常:
Attempt by method 'System.Threading.ReaderWriterLockSlim.WaitOnEvent(System.Threading.EventWaitHandle, UInt32 ByRef, TimeoutTracker)' to access method 'System.Threading.WaitHandle.WaitOne(Int32, Boolean)' failed.
解决方法: 避免使用 ReaderWriterLockSlim 对象。使用其他同步基元,如Monitor类。作为一种替代方法,可在类级别上使用 System.Threading.SemaphoreSlim 对象。
当 XAML 引用的对象包含以下内容,在 Visual Studio 中生成项目将失败:
已包装在另一个值类型中的 WINPRT enum 或 WINPRT enum。
其 WINPRT enum 或 WINPRT enum 已包装在另一个值类型中的虚方法签名。
用户影响: Visual Studio 无法生成该项目。
解决方法: 在托管类中包装 WINPRT 类型。
当 Windows Phone 7.1 WINPRT 项目的配置已更改为 ARM\x86 时,该项目将不再接受生成任务检查。
用户影响: 在 Visual Studio 中,Windows Phone 7.1 项目不发生重新生成和清除操作。
解决方法: 若要在 Visual Studio 中生成项目,请在 Visual Studio 中标记要生成的项目。
Visual Studio 设计器
在 Windows Phone 8 应用的 Visual Studio 设计器视图中,当应用引用面向以下平台的任何组合的可移植类库时将发生异常:适用于 Windows Store 应用和 Windows Phone 8 的 .NET Framework 4.5、.NET Framework。当发生这种情况时,将显示以下错误:Error HRESULT E_FAIL has been returned from a call to a COM component.
用户影响: 如果您的应用引用了面向这三个平台任意组合的可移植类库,您将无法使用 Visual Studio 设计器。
解决方法: 在 Expression Blend 中,而不是在 Visual Studio 设计器中使用设计器。或者,更改可移植库的目标以包括以下任何一项:.NET Framework 4.0.3 或更早版本、Windows Phone 7.5 或更早版本、Silverlight 5 或更早版本或 Xbox 360。或者,删除对可移植类库项目的引用,并使用生成项目时所产生的 DLL 的引用来替代它。
应用清单
将使用 ID_CAP_WALLET_SECUREELEMENT 功能的应用部署到开发人员解锁设备时失败,并显示下列错误:Installation of the application failed.发生运行时错误。修复 WMAppManifest.xml 文件中的功能。
用户影响: 您无法并行加载使用 ID_CAP_WALLET_SECUREELEMENT 功能的应用。
解决方法: 要部署使用此功能的应用,您必须请求特殊权限,并将该权限应用到您的开发人员帐户。有关更多信息以及联系支持人员以获取帮助,请转到开发人员支持。
语音
为 JPN 区域设置创建的列表语法上的断词可能不正确。
用户影响: 无法识别 JPN 区域设置的某些常用单词。
解决方法: 面向 JPN 区域设置的开发人员应始终使用语音识别语法规范 (SRGS) 语法,并避免使用列表语法。
如果用户更改了他们的 Windows Phone 区域设置,使用语音语法的应用可能会遭遇错误。出现此错误是因为,区域设置对相关的区域特定的格式值进行了强制性地格式更改。受影响的值包括重量、重复概率、浮动变量标记、体积、比率、间距、时间和轮廓线。
用户影响: 更改了区域设置的用户可能在语音应用中遇到错误。
解决方法: 在语音合成标记语言 (SSML) 中,不要使用非整数 XML 值。
本机应用
在仅限本机应用(即,不包含 XAML 的应用)中,如果从应用的主线程中调用 CurrentApp::LicenseInformation->IsTrial API,将引发异常。
用户影响: 使用仅限本机的开发人员将不能判断应用是否处于试用模式。
解决方法: 从不同线程中调用 API,如下所示:
ThreadPool::RunAsync( ref new WorkItemHandler( [](IAsyncAction^ operation)
{
auto value = CurrentApp::LicenseInformation->IsTrial;
}));
相机
如果照片是在手机处于反转向或纵向方向时捕获的,自动选择的方向可能会倒置。
用户影响: 在本机拍照中,照片将倒置。
解决方法: 将应用限制为横向或使用 Windows.Phone.Media.Capture.KnownCameraGeneralProperties.EncodeWithOrientation 直接指定图像方向。
注意: 加速度计 API 需要检测反转向。
本地化
每个 Windows Phone SDK 8.0 本地化版本皆被设计为与相应的本地化操作系统和 Visual Studio 2012 的本地化版本结合使用。
用户影响: 将本地化为一种语言的 Windows Phone SDK 8.0 与本地化为另一种语言的 Visual Studio 2012 结合使用时,您可能会遇到问题。例如,不支持将意大利语版的 Windows Phone SDK 8.0 与英语版的 Visual Studio 2012 结合使用的情况。有关更多信息,请参见 Windows Phone SDK 8.0。
解决方法: 确保 Windows Phone SDK 8.0、Visual Studio 2012 和操作系统都支持同一种本地化语言。
重大更改
您将在 Windows Phone 8 开发人员文档的 Windows Phone 应用平台兼容性主题中找到关于 SDK 中重大更改的信息。
Windows Phone 的 OData 客户端工具
Windows Phone 安装程序的 OData 客户端工具扩展了“添加服务引用”的体验,客户端 OData 支持使用 Windows Phone SDK 8.0 开发 Windows Phone 7 和 Windows Phone 8 应用。该工具添加引用,这些引用能够使用最高到 v3 的 OData 服务。Windows Phone 的 OData 客户端工具不包含在 SDK 中。若要下载并了解更多关于 Windows Phone 的 OData 客户端工具的信息,请参阅 Windows Phone 的 OData 客户端工具。
版权和保密性声明
本文档按原样提供。本文档中的信息,包括 URL 和其他 Internet 网站引用,如有更改,恕不另行通知。
此处列举的一些示例纯属虚构,仅用于说明目的。它们不指示任何实际联系,也不应做出此推断。
本文档不向您提供对任何 Microsoft 产品中的知识产权的任何法律权利。您可以出于内部原因、参考目的和无任何目的复制并使用本文档,无需 Microsoft Corporation 明确的书面许可。
© 2012 Microsoft Corporation. 保留所有权利。
Microsoft、ActiveX、Authenticode、Bing、Calibri、Direct3D、DirectX、DreamSpark、Excel、Expression、Expression Blend、Georgia、Hyper-V、InPrivate、IntelliSense、Internet Explorer、Jscript、Kinect、MS、MSDN、MSN、Outlook、PlayReady、Segoe、SQL Azure、SQL Server、Tahoma、Verdana、Visual Basic、Visual C#、Visual C++、Visual Studio、Win32、Windows、Windows Azure、Windows Live、Windows Server、Windows Vista、WinFX、Xbox、Xbox 360、Xbox LIVE、XNA 和 Zune 都是 Microsoft 集团公司的商标。
所有其他商标是其各自所有者的财产。