2011-07-06 13 views
2

私はWindows Phone 7アプリケーションを開発するためのヘルパークラスのセットであるクラスライブラリを持っています。Windows Phone Phoneアプリケーションで使用される機能

私がこのライブラリに持っているコアヘルパークラスの1つは、ロケーションサービス機能を提供する責任があるため、ILocationWatcherとSystem.Deviceへの参照を使用します。

マーケットプレイスでアプリを送信した後にこのヘルパークラス(つまりLocationWatcherが起動されない)を使用しなくても、アプリが使用している機能の1つとして「ロケーションサービス」が表示されます。

私は、マーケットプレイスがこれを検出する方法は、プロジェクト内のすべてのコードとライブラリを多かれ少なかれ分析していると思います。

どうしたらこの動作を無効にすることができますか?

答えて

5

能力は、xapがマーケットプレイスに提出されたときに静的分析を使用して検出されます。

アセンブリSystem.Deviceを参照し、名前空間System.Device.Locationを使用すると、場所の能力が報告されます。

XAPのすべてのアセンブリが分析されます。 あなたが第三者から手に入れたもの。

マーケットプレイスで機能を報告したくない場合は、検出をトリガする参照を削除してください。
これを念頭に置いて共有/共通ライブラリ/コードをどのように構築するかを検討したいことがあります。

+0

つまり、ライブラリからロケーションヘルパーを分離する以外に、オーバーライドすることが絶対にあるということですか? –

+0

「このコードはこのアプリケーションでは使用されていません」という言い方はありません。アプリから削除する以外の方法はありません。 –

-1

私はコードを分析しているとは思わない。むしろマニフェストのCapabilitiesセクションを使用して必要なものを判断しています。

http://msdn.microsoft.com/en-us/library/ff769509(v=vs.92).aspx#BKMK_Capabilities

は、アプリケーションのマニフェストにはID_CAP_LOCATIONが含まれています:あなたはここでそのセクションについての詳細を学ぶことができますか?あなたがそれを使用していない場合、それは安全に削除することができます。

+0

すべてのcapabilitesは、xapがマーケットプレイスに提出されたときに検出されます。マニフェストに入れた値はオーバーライドされます。これらは、テスト/デバッグ時にのみ役立ちます。 –

+0

ええ、それは私には驚きです。私の顔の卵! – vcsjones

1

使用済みの機能はfree capability detection tool supplied with the second Mango SDK betaで確認できます。 WMAppManifest.xmlで場所を定義せずに場所を使用すると、ユーザーは「アクセスが拒否されました」というメッセージが表示され、アプリはUnauthorizedAccessExceptionを投げます。 Afaikにはこの行動を回避する方法はありません。これは、アプリケーションをインストールする前にユーザーに警告して、アプリケーションが使用したい機能を市場で確認できるようにするセキュリティ機能です。

+0

能力検出ツールの場合、thnx –

関連する問題