none
Background Agent symbol not loaded e não para nos breakpoints RRS feed

  • Pergunta

  • oi!

    Eu tenho um ScheduledTaskAgent que não está correndo e não consigo fazer debug... na janela Modules não aparece a dll do ScheduledTaskAgent... está adicionado nas referencias tudo igual as minhas outras 2 classes que, estas sim, aparecem a dll na janela Module e os breakpoints funcionam direito, enquanto que no ScheduledTaskAgent aparece "breakpoint will not be hit. No symbols loaded"

    Projeto de windows phone 8 que foi atualizado para windows phone 8.1, tenho configurado no package.appmanifest e no WMAppManifest.xml também.

    sendo package.appmanifest:

    <Extensions>
            <Extension Category="windows.backgroundTasks" EntryPoint="SFTaskAgent.ScheduledAgent">
              <BackgroundTasks>
                <Task Type="systemEvent" />
                <Task Type="timer" />
                <Task Type="pushNotification" />
              </BackgroundTasks>
            </Extension>
          </Extensions>

    e WMAppManifest.xml:

    <Tasks>
          <DefaultTask Name="_default" NavigationPage="Main.xaml" ActivationPolicy="Resume" />
          <ExtendedTask Name="BackgroundTask">
            <BackgroundServiceAgent Specifier="ScheduledTaskAgent" Name="SFTaskAgent" Source="SFTaskAgent" Type="SFTaskAgent.ScheduledAgent" />
          </ExtendedTask>
        </Tasks>

    e o meu Background agent está definido assim:

    namespace SFTaskAgent
    public class ScheduledAgent : ScheduledTaskAgent

    Alguém tem alguma ideia no que pode estar acontecendo para o meu Background Agent não estar entrando em modo debug?

    Outra coisa estranha... se eu abro o Windows Phone Power tools ele indica que tem um backgroundtaskHost.exe do meu aplicativo correndo...


    • Editado Rickrvo quarta-feira, 7 de janeiro de 2015 14:28
    terça-feira, 6 de janeiro de 2015 17:31

Respostas

  • Olá Rickrvo,

    Aparentemente acredito que você está fazendo tudo certo, porem de uma olhada em “Background Agents”. La você vai encontrar as seguintes considerações:

    • Your agent must derive from ScheduledTaskAgent and you must override OnInvoke
    • Your agent must be correctly registered in WMAppManifest.xml of      the foreground project
      • Visual Studio does this for you automatically, but if you change the       name of the class or of the project you will need to update the XML file
      • Cheat sheet: Specifier = ScheduledTaskAgent, Source =       [assembly name], Type =       [fully qualified type name],       Name = [whatever you       want]
    • Your agent project (and any projects it references) must be      referenced by the foreground project, even if you never use it (this is so      that it is correctly added to the XAP)
    • Your foreground app never explicitly calls into the agent (they      are separate processes) but if you want you can instantiate an instance of      the agent class inside your foreground app in order to share code (using a      shared library might be a better approach, though)

    Just in case you missed it (and for search-engine-friendliness):

    • If you change your agent's project name, namespace, or class name, you      must update WMAppManifest.xml for the new metadata
    • If you reference another assembly from the agent, you must also      reference it from the foreground app to ensure it makes it into the XAP

    If you fail to do this, your agent will not load at all. If you run it under the debugger with the break on all exceptions turned on, you will get a FileNotFoundException stating that it can't find your assembly or one of the assemblies it relies on.

    Eu vi que você derivando de “ScheduledTaskAgent” em mas não consigo validar os demais passos:

    namespace SFTaskAgent
    public class ScheduledAgent : ScheduledTaskAgent

    Espero que você consiga resolver o seu problema,

    Boa sorte.

    Veiga

    quinta-feira, 16 de abril de 2015 21:43
    Moderador