September 19, 2011

Version Information

The following table provides information about the release date and version number of the Windows Phone SDK 7.1.

Release date

Release name

WP SDK 7.1

Adaptation kit / Phone build

Zune® software

Visual Studio®

9/28/2011

Release to Web

40219.209

7720.20110723-1646

04.08.2345.00

2010 RTM + SP1

8/22/2011

Release Candidate

40219.166

7720.20110723-1646

04.08.2134.00

2010 RTM + SP1

6/29/2011

Beta 2

40219.115

7661.20110607-1657

04.08.2098.00

2010 RTM + SP1

5/24/2011

Beta 1

40219.87

7629.20110426-1509

04.08.2057.00

2010 RTM + SP1

The following table provides information about the Windows Phone SDK 7.1 additional components and related software.

XNA® Game Studio

Microsoft Expression Blend

WCF Data Services Client

Microsoft Advertising SDK

4.0.30901.0

4.0.30816.0

4.7.6.0

5.2.819.0

What’s New

Previous Releases

System Requirements

Installation Prerequisites

If you do not have Visual Studio installed, then you can still install the Windows Phone SDK 7.1. As part of the Windows Phone SDK, Microsoft Visual Studio 2010 Express for Windows Phone is installed, and you can use it for development after you install the Windows Phone SDK 7.1. If you have Visual Studio Professional edition or higher already installed, you can use it for development after installing the Windows Phone SDK 7.1. You must change the language setting of Visual Studio 2010 to match the language of the Windows Phone SDK.

Note:

If you have the Windows Phone Developer Tools 7.0 (ENU) installed, you do not need to uninstall it before you install the Windows Phone SDK 7.1 (ENU).

Caution:

If you have a previous Beta or Release Candidate version, you must uninstall it before you install the Windows Phone SDK 7.1.

Caution:

The localized Windows Phone SDK 7.1 can be installed only on the corresponding language of the supported operating systems. The English Windows Phone SDK 7.1 can be installed on any language of the supported operating systems. For more information, see Installing the Windows Phone SDK.

  • If you have Visual Studio 2010 RTM installed, you must install Service Pack 1 RTM before you install the Windows Phone SDK 7.1. Please refer to the Service Pack 1 release notes for installation issues.

    Visual Studio 2010 SP1 RTM

    Visual Studio 2010 SP1 RTM Release Notes

    • You do not need to uninstall Service Pack 1 Beta before upgrading to Service Pack 1 RTM.

    • If you install any other Visual Studio 2010 products after you install the Windows Phone SDK 7.1, then reinstall Service Pack 1 RTM.

  • If you have a localized version of Windows Phone Developer Tools 7.0 installed, you must uninstall it before you install the Windows Phone SDK 7.1.

  • If you have a localized version of Expression Blend installed, you must uninstall it before you install the Windows Phone SDK 7.1 (ENU).

  • If you have the Windows Phone Developer Tools 7.0 (ENU) installed, you must uninstall it before you install a localized version of the Windows Phone SDK 7.1.

  • If you have Expression Blend (ENU) installed, you must uninstall it before you install a localized version of the Windows Phone SDK 7.1.

  • If you installed the Microsoft Advertising SDK for Windows Phone 7 version 5.1 or earlier, you must uninstall it before you install the Windows Phone SDK 7.1.

    Uninstall the item Microsoft Advertising SDK for Windows Phone 7 from the programs list on your computer.

    Note:

    The Microsoft Advertising SDK is now fully integrated into the Windows Phone SDK 7.1; you do not need to install it separately.

  • If you installed Visual Basic for Windows Phone Developer Tools 7.0, you must uninstall it before you install the Windows Phone SDK 7.1.

    Uninstall the item Visual Basic for Windows Phone Developer Tools – RTW from the programs list on your computer.

    Note:

    Visual Basic is now fully integrated into the Windows Phone SDK 7.1; you do not need to install it separately.

Back to Top

Installation and Uninstallation

Known Issues

The following are the known issues in the Windows Phone SDK 7.1.

Background Services

Deploying and Debugging

  • Updating a developer-unlocked device to Windows Phone OS 7.1 may cause the device to become relocked. To resolve this issue, use the developer unlock tool to unlock the device again.

  • Application XAP files of certain sizes may deploy but fail to launch on Windows Phone Emulator. This can occur for XAP files that are approximately 100 MB or more. To resolve this issue, remove resources from your project to reduce the size of the XAP file below 100 MB. Deploy your application, and then incrementally re-add resources and re-deploy.

  • Applications that contain non-ASCII Unicode characters in their XAP file name can be deployed successfully but might fail to launch. To resolve this issue, rename the XAP file.

  • Deploying an application may fail and display the message Error – 0x81030120. To resolve this issue, open the file WMAppManifest.xml and delete the following element. For more information, see Application Manifest File for Windows Phone and How to: Determine Application Capabilities.

     
    <Capability Name="ID_CAP_INTEROPSERVICES"/>

  • Applications that use the new Camera APIs or Contacts and Calendar APIs may fail to start. This can occur for applications that are upgraded from Windows Phone OS 7.0 to Windows Phone OS 7.1. To resolve this issue, open the file WMAppManifest.xml and add the following elements as necessary. For more information, see Application Manifest File for Windows Phone and How to: Determine Application Capabilities.

     
    <Capability Name="ID_CAP_CAMERA"/>
    <Capability Name="ID_CAP_APPOINTMENTS"/>
    <Capability Name="ID_CAP_CONTACTS"/>

Back to Top

Windows Phone Emulator

Back to Top

Visual Studio Projects

  • Changing the assembly name of a Silverlight application prevents the application from launching. To resolve this issue, perform one of the following:

    • On the Build menu, click Clean Solution.

      - Or -

    • In Solution Explorer, click the Show All Files button. Delete the obj folder. On the Debug menu, click Build Solution.

  • To change the namespace of an application, you need to modify the following files: YourProjectName.csproj, App.xaml, and App.xaml.cs.

    1. In the file YourProjectName.csproj, locate the SILVERLIGHTAPPENTRY element and replace the existing content with the new namespace name. That is, change <SilverlightAppEntry>OldNamespace.App</SilverlightAppEntry> to <SilverlightAppEntry>NewNamespace.App</SilverlightAppEntry>.

    2. In the file App.xaml, locate the x:Class=”OldNamespace.App" attribute and change it to x:Class="NewNamespace.App".

    3. In the file App.xaml.cs, locate the namespace declaration and change namespace OldNamespace to namespace NewNamespace.

    4. In the project property pages, select the correct Startup Object to match the new namespace.

  • The default project template Windows Phone Silverlight and XNA Application contains the compiler warning “The project <ProjectName> cannot be referenced. The referenced project is targeted to a different framework family (.NETFramework).” This warning does not affect your application and should be left in place.

  • Adding an image to a resource file causes the compiler error “The type or namespace name 'Drawing' does not exist in the namespace 'System' (are you missing an assembly reference?).” To resolve this issue, you can try the steps described at Images with ResourceManager on the Silverlight forum.

Back to Top

Profiler and Marketplace Test Kit

Only profiling of apps that target Windows Phone OS 7.1 on Windows Phone OS 7.1 devices and emulator is supported. Profiling on Windows Phone Emulator is supported; however, performance data may not be indicative of an application’s performance on a physical device.

  • Texture data is not collected for Image and Media controls.

  • Profiling does not capture data after a storyboard is paused and then resumed. The active storyboard displays data only until the point that the storyboard is paused.

  • Do not open saved profiler session .sap files created by using previous Beta releases. Instead, profile your application with the new release.

  • After running monitored tests for an application, temporary files still remain in the %temp% directory. You can rely on operating system utilities to delete the files, or you can delete them manually.

Back to Top

Miscellaneous

  • UDP Multicast sockets use Wi-Fi while connected to Zune.

  • When you first create a secondary Tile, you must use a local image for the background. You can subsequently update the image by using a remote URI; however, secondary ShellTiles that use remote URIs fail to persist on the Start screen after the user reboots the phone.

  • The Response.ContentLength property of an HttpWebRequest object returns 0xFFFFFFFF for all responses above 65,536 bytes. If you check the content length in your application, you should update your code as follows.

    Old way: if (httpWebResponse.ContentLength == -1L)

    New way: if (httpWebResponse.ContentLength == -1L || (Int32)httpWebResponse.ContentLength == -1)

  • Using the XmlnsDefinitionAttribute class isn’t supported and may cause an application to stop responding.

  • Multiline text boxes use \r as the new line character instead of \r\n.

  • ListBox controls that use XNA Framework rendering do not scroll correctly. To resolve this issue, set the ManipulationMode of the ScrollViewer to Control in either the XAML or the code-behind.

     
    <ListBox ItemsSource="{Binding Items}" ScrollViewer.ManipulationMode="Control" >
  • When using Windows Phone Emulator on a Korean operating system, text entered in controls appears in Korean instead of English. To resolve this issue, explicitly enable the English keyboard in the system settings.

  • The Take Snapshot and Restore Snapshot functions of the Isolated Storage Explorer tool do not work as expected when there is a read-only file in the isolated storage. The following recommendations help to alleviate this issue:

    • Do not place read-only files into isolated storage.

    • Always use a new desktop folder when using the Take Snapshot function.

    • Always check the contents of a desktop folder before using the Restore Snapshot function.

  • Unicode characters in the Bing, Marketplace Search, and WebBrowser Task properties do not work. To resolve this issue, use the tasks without Unicode characters.

Back to Top

Localized Windows Phone SDKs

The localized versions of the Windows Phone SDK are supported only on the corresponding languages of the operating system. All features work only on supported configurations. For more information, see Installing the Windows Phone SDK.

The following issues are present only in the localized versions of the Windows Phone SDK 7.1.

  • Page templates do not contain the language attribute. This might cause incorrect rendering for East Asian characters. To resolve this issue, add the following code to the start tag of the top-level element, such as <phone:PhoneApplicationPage>. For more information, see Displaying Chinese, Japanese, and Korean Text.

     
    Language="your culture code"

Back to Top

Breaking Changes

For breaking changes in the Windows Phone SDK 7.1, see the next three sections.

Windows Phone OS 7.0 included Silverlight 3, and Windows Phone OS 7.1 now includes Silverlight 4. For differences between Silverlight 3 and Silverlight 4, see Ensuring That Your Silverlight Applications Work with Silverlight 4.

Breaking Changes from Windows Phone Developer Tools 7.0

The following are the breaking changes between the Windows Phone SDK 7.1 and the Windows Phone Developer Tools 7.0.

Change

Description

Rationale

Mitigation

Touch input for the ScrollViewer and ListBox controls happens on an independent thread by default, instead of on the UI thread.

In Windows Phone OS 7.0, touch input for the ScrollViewer and ListBox controls happened on the UI thread, causing the user interface responsiveness to suffer. In Windows Phone OS 7.1, touch input for these controls happens on an independent thread by default, allowing the scrolling to occur much faster.

This change enables the user interface to be more responsive.

In situations where background handling of touch input is not suitable, change the ManipulationMode of the control to Control in either the XAML or the code-behind.

The response for an asynchronous web client request that was generated on a background thread returns to the background thread pool.

In Windows Phone OS 7.0, if an asynchronous web client request was generated on a background thread, the response was returned to the UI thread. The response now returns to whichever thread pool it was generated on.

Applications that are upgraded to target Windows Phone OS 7.1 might be affected if they relied on the response returning on the UI thread. An UnauthorizedAccessException exception can occur with the message “Invalid cross-thread access.”

This change enables complete background processing of downloads, and enables the user interface to be more responsive.

In code that relies on the response returning on the UI thread, marshal the response using Dispatcher.BeginInvoke.

The TaiwanCalendar class has been removed from the API.

The TaiwanCalendar class has been removed from the API. It is no longer available in Windows Phone OS 7.0 or Windows Phone OS 7.1.

This is a geopolitical requirement.

Applications that use this class should update their code to remove this class.

Back to Top

Breaking Changes from Previous Beta Releases

The following are the breaking changes between the Windows Phone SDK 7.1 and previous Beta releases only.

Change

Description

Rationale

Mitigation

Extension method types renamed.

The following types were renamed.

  • SocketExtensionMethods is now SocketExtensions

  • WebRequestExtensionMethods is now WebRequestExtensions

  • WebBrowserExt is now WebBrowserExtensions

The new names follow the .NET Framework naming guidelines.

Applications that use these types should be updated to use the new names.

The IsRunningSlowly property was removed from the GameTimerEventArgs class.

The IsRunningSlowly property was removed from the GameTimerEventArgs class.

This property always returns false.

Applications that use this property should update their code to remove this property.

IExecuteResult was removed from the Windows Phone OS 7.1 API.

IExecuteResult was removed from the Windows Phone OS 7.1 API.

The phone does not support ExecuteMethodCall, and any applications that attempt to use it fail.

Applications that use IExecuteResult or ExecuteMethodCall should update their code to remove the references.

The MotionReading property types have changed.

The properties in the MotionReading type have been changed to Vector3. DeviceRotation was renamed DeviceRotationRate.

This change eliminates the dependency between MotionReading, AccelerometerReading, and GyroscopeReading.

Code that uses the MotionReading class must change to use the new types and name.

The Background Transfer Service folder in isolated storage was renamed.

The Background Transfer Service exchange folder was renamed from \Transfers to \Shared\Transfers.

This change groups all services that access files in the isolated storage under “Shared”.

Change all references from DownloadLocation, UploadLocation, and the source URI of the BackgroundTransferRequest constructor to point to Shared\Transfers instead of Transfers.

Tile data in isolated storage must use the folder Shared\ShellContent.

StandardTileData.BackBackgroundImage and StandardTileData.BackgroundImage must now use the folder Shared\ShellContent for images stored in isolated storage.

This change groups all services that access files in the isolated storage under “Shared”.

Change all references from BackBackgroundImage and BackgroundImage to point to Shared\ShellContent. For example:

 
BackgroundImage     = new Uri("isostore:/Shared/ShellContent/TileBackground.jpg", UriKind.Absolute),
BackBackgroundImage = new Uri("isostore:/Shared/ShellContent/BackTileBackground.jpg", UriKind.Absolute)

The ShellTileEnumerator class was removed.

The ShellTileEnumerator class was removed.

The standard IEnumerable<T> interface is all that is needed when using the ShellTile.ActiveTiles property.

Enumerate the ActiveTiles property by using the standard IEnumerable<T> interface.

Background agents are not launched in the debugger by using the Add and Find methods.

Previously, background agents were launched in the debugger by using the Add and Find methods. Now they are launched by using the LaunchForTest method.

The new LaunchForTest method makes it easier to debug background agents.

Use the LaunchForTest method to debug background agents.

The OnCancel override method was removed from the ScheduledTaskAgent class.

The OnCancel override method was removed from the ScheduledTaskAgent class. The only remaining override is the OnInvoke method.

The OnCancel override method caused issues with the background power model.

Applications that use this method should update their code to remove this method.

Memory for Scheduled Task Agents is limited to 6 MB.

Previously, the amount of RAM allocated to Scheduled Task Agents was 8 MB. Now the limit is 6 MB. This change does not affect Audio Player Agents or Audio Streaming Agents.

This change protects the robustness of the phone.

If necessary, restructure your application to work within the new limit.

Scheduled Task Agents that exceed memory limits or that terminate with exceptions can be unscheduled.

Scheduled Task Agents that exceed memory limits can be terminated. Two consecutive violations result in schedule suspension.

This change protects the robustness of the phone.

The recommendation for Scheduled Task Agents is to target a 15-second duration and a 4.5-MB peak process memory. If necessary, restructure your application to work within the recommendations.

Microsoft.Devices.YCrCbPixelLayout was renamed to Microsoft.Devices.YCbCrPixelLayout.

Microsoft.Devices.YCrCbPixelLayout was renamed to Microsoft.Devices.YCbCrPixelLayout.

This change reflects industry-standard naming conventions.

Applications that use YCrCbPixelLayout should update their code.

Microsoft.Devices.CaptureResolution was removed.

Microsoft.Devices.CaptureResolution was removed.

This change replaces the custom CaptureResolution class with the standard Size class to be more consistent with established developer patterns and framework guidelines.

Applications that use CaptureResolution should update their code to use the standard Size class.

The maximum and default database and buffer pool size values are now lower for SQLCE databases.

The maximum value for the database size is lowered from 4 GB to 512 MB. The default value for the database size is lowered from 128 MB to 32 MB.

The maximum value for buffer pool size is lowered from 255 MB to 5 MB. The default value for buffer pool size is lowered from 640 KB to 384 KB.

This change reduces the memory footprint of SQLCE in default and worst-case scenarios, and ensures that shared memory usage does not threaten device health.

Applications that connect to large databases must set the maximum database size explicitly in the connection string. You may also need to increase the buffer pool size to achieve the same performance.

Applications that use large databases and buffer pools may use more than the allowed amount of shared memory, resulting in an exception. In that case, it will need to change the database size and buffer pool size values, or restructure the application to work within the limits.

Connection string parameters that are not supported are removed.

Connection string parameters that are not supported are removed. This applies to the following.

  • Flush interval

  • Temp path / temp file directory

  • Persist security info

  • Locale identifier

  • Default lock timeout

  • Default Lock escalation

  • Encrypt database

  • Encryption mode

  • Enlist

This change limits the complexity of the connection string options.

Applications that contain these parameters must remove them from the connection string.

Back to Top

Breaking Changes that Have Been Reverted

The following are the breaking changes between the Windows Phone SDK 7.1 and the Windows Phone Developer Tools 7.0 that were present in previous Beta releases, but have now been reverted.

Change

Description

Rationale

Mitigation

Image decoding happens on a background thread by default, instead of on the UI thread.

In Windows Phone OS 7.0, image decoding happened on the UI thread, causing the user interface responsiveness to suffer. In Windows Phone OS 7.1, image decoding happens on a background thread by default. Applications that are upgraded from Windows Phone Developer Tools 7.0 to the Windows Phone SDK 7.1 are affected by this change. Applications that target Windows Phone OS 7.0 are not affected by this change.

This change enables the user interface to be more responsive.

This change has been reverted. You should not make any changes to your application code.

You can opt in to the optimized behavior by setting the CreateOptions of an image to BackgroundCreation in either XAML or the code-behind file.

You can opt out of the optimized behavior explicitly by setting the CreateOptions of an image to DelayCreation in either the XAML or the code-behind file.

Back to Top

Copyright and Confidentiality Statements

This document supports a preliminary release of a software product that may be changed substantially prior to final commercial release. This document is provided for informational purposes only and Microsoft makes no warranties, either express or implied, in this document. Information in this document, including URL and other Internet Web site references, is subject to change without notice. The entire risk of the use or the results from the use of this document remains with the user. Unless otherwise noted, the companies, organizations, products, domain names, e-mail addresses, logos, people, places, and events depicted in examples herein are fictitious. No association with any real company, organization, product, domain name, e-mail address, logo, person, place, or event is intended or should be inferred. Complying with all applicable copyright laws is the responsibility of the user. Without limiting the rights under copyright, no part of this document may be reproduced, stored in or introduced into a retrieval system, or transmitted in any form or by any means (electronic, mechanical, photocopying, recording, or otherwise), or for any purpose, without the express written permission of Microsoft Corporation.

Microsoft may have patents, patent applications, trademarks, copyrights, or other intellectual property rights covering subject matter in this document. Except as expressly provided in any written license agreement from Microsoft, the furnishing of this document does not give you any license to these patents, trademarks, copyrights, or other intellectual property.

© 2011 Microsoft Corporation. All rights reserved.

Microsoft, Bing, DirectX, Expression Blend, MSDN, Silverlight, Visual Basic, Visual Studio, Windows, Windows Server, Windows Vista, XNA, and Zune are trademarks of the Microsoft group of companies.

All other trademarks are property of their respective owners.