If you're doing Windows Phone 7 application development, then part of the submission process replaces the capabilities in the manifest file with those capabilities that it actually requires. To potentially save yourself some time and testing effort, you should make sure that you fully test your application using the correct set of capabilities before it gets to the submission process. This step just got a little easier in the Windows Phone Developer Tools October 2010 Update, which includes the Windows Phone Capability Detection Tool.
You use the Capability Detection Tool against your application XAP file to verify which capabilities you actually need so that you can update your manifest accordingly. As the above MSDN article explains, it’s a command line tool which you use like this:
CapabilityDetection.exe Rules.xml [Path to bin folder]
To make my life a little easier, I turned this into an External Tool in Visual Studio. Just set the Command to:
C:\Program Files (x86)\Microsoft SDKs\Windows Phone\
the Arguments to:
and the InitialDirectory to:
C:\Program Files (x86)\Microsoft SDKs\Windows Phone\v7.0\Tools\CapDetect\
You should also check the Use Output Window checkbox.
The settings and example output are shown in the following picture:
Note: Under some circumstances (such as local instantiation of a URI), the capability detection tool will report the
ID_CAP_NETWORKING capability. If you really don't need this capability, you can safely remove it, but you should make sure you test fully after removing it.
The October Update also includes the Windows Phone Connect Tool, which enables you to connect your phone to a PC when the Zune software is not running and debug applications that use media APIs and unspecified improvements to gesture performance when using the Bing Maps Silverlight control.