0

アプリ ハブにアプリを送信しようとしていますが、バックグラウンド エージェントを使用してアプリ タイルを更新しています。バックグラウンド エージェントは Microsoft.Phone.dll を使用する必要がありますが、アプリを送信すると次のエラーが発生します。

2011: バックグラウンド エージェントは Microsoft.Phone.Shell.ShellTile::Create を使用できません。アセンブリ TileAgent.dll が使用しようとしています。ファイルを更新してから、再試行してください。

2011: バックグラウンド エージェントは、アセンブリ Microsoft.Phone.dll が使用しようとしている System.Windows.Controls.MediaElement::Pause を使用できません。ファイルを更新してから、再試行してください。

2011: バックグラウンド エージェントは、アセンブリ Microsoft.Phone.dll が使用しようとしている System.Windows.Controls.MediaElement::Stop を使用できません。ファイルを更新してから、再試行してください。

2011: バックグラウンド エージェントは、アセンブリ Microsoft.Phone.dll が使用しようとしている System.Windows.Controls.MediaElement::Play を使用できません。ファイルを更新してから、再試行してください。

2011: バックグラウンド エージェントは、アセンブリ Microsoft.Phone.dll が使用しようとしている System.Windows.Controls.MediaElement::set_Position を使用できません。ファイルを更新してから、再試行してください。

2011: バックグラウンド エージェントは、アセンブリ Microsoft.Phone.dll が使用しようとしている System.Windows.Controls.MediaElement::set_AutoPlay を使用できません。ファイルを更新してから、再試行してください。

2011: バックグラウンド エージェントは、アセンブリ Microsoft.Phone.dll が使用しようとしている System.Windows.Controls.MediaElement を使用できません。ファイルを更新してから、再試行してください。

2011: バックグラウンド エージェントは、アセンブリ Microsoft.Phone.dll が使用しようとしている System.Windows.Controls.MediaElement::SetSource を使用できません。ファイルを更新してから、再試行してください。

2011: バックグラウンド エージェントは、アセンブリ Microsoft.Phone.dll が使用しようとしている System.Windows.Media.VideoBrush を使用できません。ファイルを更新してから、再試行してください。

2011: バックグラウンド エージェントは、アセンブリ Microsoft.Phone.dll が使用しようとしている System.Windows.Controls.MediaElement::.ctor を使用できません。ファイルを更新してから、再試行してください。

私はこれらのアセンブリを使用していないか、エージェントのプロジェクトのどこでもそれらを参照していません。助けてください!

EDIT : create tile メソッドを削除したところ、このエラーはなくなりました。残りは同じままですが、私はそれらのいずれも使用していませんが、このプロジェクトでは System.Widnows.Contols はまったく使用されていません

編集:これは私がエージェントのプロジェクトで持っている参照のリストです

Microsoft.Phone
mscorelib
mscorelib.extensions
system
System.Core
System.Net
System.Windows
System.Xml
4

3 に答える 3

0

エージェントには、リストされた API を使用するコードへの参照がいくつかあります。例えば:

新しいタイルを作成するクラスがあります。Microsoft.Phone.Shell.ShellTile::Create. また、バックグラウンド エージェントが同じプロジェクトに存在するか、bg エージェントが新しいタイルを作成するプロジェクトに存在するコードを使用します。

いくつかの例:

プロジェクトA

 //draws tile 
 public class TileBuilder() {}
 //creates new tile using TileBuilder() 
 public class NewTileManager(TileBuilder tBuilder) 
 {
 }

プロジェクトB

  public class ScheduledAgent : ScheduledTaskAgent
  {
      protected override void OnInvoke(ScheduledTask task)
      {
        //update data
        var tBuilder = new TileBuilder(); // oops, you use code from proj A. 
                                          // So, you have it
                                          // as a reference, And MS thinks that 
                                          // your bgAgent uses forbidden API

      }

}
于 2012-10-09T08:21:52.167 に答える
0

スケジュールされたタスクから一部の API を使用できません。

詳細については、 http://msdn.microsoft.com/en-us/library/hh202962 (v=vs.92).aspx を参照してください。

于 2012-10-09T07:26:33.833 に答える