Comment déboguer un fichier XBAP publié dans VS2010?

Je dois déboguer une application de confiance totale en spécifiant une URL ou, idéalement, depuis l’application Web sur laquelle je compte la déployer. J’ai essayé ce qui suit:

  • Exécution de “PresentationHost.exe -embedding” à partir de la ligne de commande, en s’attachant via Visual Studio. L’EDI montre que mes points d’arrêt sont valides jusqu’à ce que je tente réellement de charger le fichier .xbap. À ce stade, il indique qu’aucun symbole n’est chargé. Aucun de mes points d’arrêt n’a été touché. J’ai essayé “mage -cc” avant de le faire selon plusieurs recommandations formulées ailleurs.

  • URL codée en dur dans le panneau de débogage du projet, puis sur F5. Sinon, “PresentationHost.exe -embedding -debug” et attachez-le au processus, puis chargez le fichier .xbap dans IE. Les deux entraînent l’erreur suivante lorsque la page apparaît:

System.ArgumentException: les formats d’URI ne sont pas pris en charge.

at System.IO.Path.NormalizePath(...) at System.IO.FileStream.Init(...) at System.IO.FileStream..ctor(...) at System.Windows.Interop.ApplicationLauncherXappDebug.GetIdFromManifest(...) at System.Windows.Interop.ApplicationLauncherXappDebug.GetApplicationIdentity() at System.Windows.Interop.ApplicationLauncherXappDebug.Initialize() at System.Windows.Interop.DocObjHost.MS.Internal.AppModel.IBrowserHostServices.Run(...) 

Je l’ai trouvé Le fichier “PresentationHost.exe -embedding” fonctionnera si vous sélectionnez le fichier .pdb à publier, ce qui n’est pas le cas par défaut. Cela découle de ce que j’ai vu auparavant, où le débogueur semblait avoir des symboles alors pas, une fois l’application chargée. Clarifier:

  • Allez dans l’onglet Publier sur les propriétés du projet
  • Cliquez sur “Fichiers d’application …”
  • Cochez “Afficher tous les fichiers”
  • Sélectionnez le fichier .pdb pour l’exécutable à inclure.
  • Republier
  • PresentationHost.exe -embedding
  • Attacher à traiter ou configurer le projet pour qu’il l’exécute en dehors de l’onglet de débogage
  • Lancez la page Web dans un navigateur et accédez au fichier xbap. Les points d’arrêt doivent être atteints maintenant.

Si vous avez access au code source et que vous déployez sur localhost, vous pouvez simplement append System.Diagnostics.Debugger.Launch(); dans votre code. Cela vous permettra de vous connecter avec VS à tout processus utilisé par votre XBAP.