Makale Özeti

CapDetect Aracı “WMManifest.xml” adlı dosyayı uygulamanın ihtiyaç duyduğu niteliklere gore tekrar düzenlemenize olanak sağlar.

Makale

Bu yazımızda sizlere WP7 sdksı ile birlikte dağıtılan CapDetect aracından bahsedeceğim.

Bildiğiniz üzereher mobil aygıtın ister Windows Phone ister Android isterse Apple iPhone olsun, farketmez, her cihazın belirli yetenekleri vardır.Bu yetenekler Kameraya erişim,GPS koordinatlarını alma,İletişim Bilgilerine erişme veya ağ nitelikleri olabilir.Windows Phone üzerinde Uygulama geliştirirken biz bu bilgileri  WMManifest.xml adlı bir dosya üzerinde saklarız.Bu dosyanın genel yapısı şu şekildedir:

<?xml version="1.0" encoding="utf-8"?>
<Deployment xmlns="http://schemas.microsoft.com/windowsphone/2009/deployment"
AppPlatformVersion="7.0">
  <App xmlns="" ProductID="{bfd638f3-4ca0-4043-9871-d34bc559eeb6}" 
Title="WindowsPhoneGame2" 
RuntimeType="XNA" Version="1.0.0.0" Genre="Apps.Normal" 
Author="" Description="" Publisher="">
<IconPath IsRelative="true" IsResource="false">
GameThumbnail.png</IconPath>
    <Capabilities>
      <Capability Name="ID_CAP_NETWORKING" />
      <Capability Name="ID_CAP_LOCATION" />      
    </Capabilities>
    <Tasks>
      <DefaultTask Name="_default" />
    </Tasks>
    <Tokens>
      <PrimaryToken TokenID="WindowsPhoneGame2Token" TaskName="_default">
        <TemplateType5>
          <BackgroundImageURI IsRelative="true" IsResource="false">
     Background.png</BackgroundImageURI>
          <Count>0</Count>
          <Title>WindowsPhoneGame2</Title>
        </TemplateType5>
      </PrimaryToken>
    </Tokens>
  </App>
</Deployment>



CapDetect Aracı “WMManifest.xml” adlı dosyayı uygulamanın ihtiyaç duyduğu niteliklere gore tekrar düzenlemenize olanak sağlar.

Hangi amaçlarda kullanıldığından bahsetmem gerekirse; olurda uygulamanıza ait WMManifest.xml dosyası yanlışlıkla silinir veya sizin haberiniz olsun olmasın içeriği değiştirilirse CapDetect aracını kullanarak uygulamanızın ihtiyaç duyduğu her yetenek,bilgi,özellik yeniden eklenerek orjinal halinin korunması sağlanır.CapDetect bu sebepten ötürü bir kurtarıcı gibidir.

CapDetect Aracı parameter olarak xap dosyasının bulunduğu yolu alır.
Kullanımı:

CapabilityDetection  <rules path> <file path> şeklindedir.


Sisteminizde bu aracı bulabileceğiniz yolu verelim hemen:

32 bit işletim sisteminde ->   %ProgramFiles%\Microsoft SDKs\Windows Phone\v7.0\Tools\CapDetect
64 bit işletim sisteminde ->   %ProgramFiles (x86)%\Microsoft SDKs\Windows Phone\v7.0\Tools\CapDetect

Şimdi bu aracı kullanalım:

Komut isteminde CapDetect aracının bulunduğu yere gidin ve aşağıdakine benzer bir komut giriniz:


 CapabilityDetection Rules.xml "C:\Users\iersoy\Desktop\WindowsPhoneGame2\WindowsPhoneGame2
\WindowsPhoneGame2\bin\WindowsPhone\Debug"



Yolu kendi uygulamanıza uyarlamanız gerekecektir.


Yalnız bir şeye dikkatinizi çekerim!

(") işaretini yolu belirlerken kullanmak zorundasınız aksi takdirde hata alacaksınızdır. 

Örnek olsun diye uygulamamın WMManifest.xml dosyasından 4 adet niteliği sildim:

 <Capability Name="ID_CAP_MICROPHONE" />
 <Capability Name="ID_CAP_MEDIALIB" />
 <Capability Name="ID_CAP_GAMERSERVICES" />
 <Capability Name="ID_CAP_PHONEDIALER" />


Lakin aracı kullandıktan sonra yeniden eklendiler.


<?xml version="1.0" encoding="utf-8"?>
<Deployment xmlns="http://schemas.microsoft.com/windowsphone/2009/deployment"
AppPlatformVersion="7.0">
  <App xmlns="" ProductID="{bfd638f3-4ca0-4043-9871-d34bc559eeb6}" 
Title="WindowsPhoneGame2" 
RuntimeType="XNA" Version="1.0.0.0" Genre="Apps.Normal" 
Author="" Description="" Publisher="">
<IconPath IsRelative="true" IsResource="false">
GameThumbnail.png</IconPath>
    <Capabilities>
      <Capability Name="ID_CAP_NETWORKING" />
      <Capability Name="ID_CAP_LOCATION" />
      <Capability Name="ID_CAP_SENSORS" />
      <Capability Name="ID_CAP_MICROPHONE" />
      <Capability Name="ID_CAP_MEDIALIB" />
      <Capability Name="ID_CAP_GAMERSERVICES" />
      <Capability Name="ID_CAP_PHONEDIALER" />
      <Capability Name="ID_CAP_PUSH_NOTIFICATION" />
      <Capability Name="ID_CAP_WEBBROWSERCOMPONENT" />
      <Capability Name="ID_CAP_IDENTITY_USER" />
      <Capability Name="ID_CAP_IDENTITY_DEVICE" />
    </Capabilities>
    <Tasks>
      <DefaultTask Name="_default" />
    </Tasks>
    <Tokens>
      <PrimaryToken TokenID="WindowsPhoneGame2Token" TaskName="_default">
        <TemplateType5>
          <BackgroundImageURI IsRelative="true" IsResource="false">
     Background.png</BackgroundImageURI>
          <Count>0</Count>
          <Title>WindowsPhoneGame2</Title>
        </TemplateType5>
      </PrimaryToken>
    </Tokens>
  </App>
</Deployment>



Sonuç:
 

CapDetect in kullanım amacından yukarıda bahsettiğim üzere işinize oldukça yarayacak bir araçtır.Yanlışlıkla bir nitelik sildiğinizde veya değiştirdiğinizde yardımınıza koşar ve hemen orjinal haline dönüştürür.Kullanmanızı tavsiye ederim.