2010-09-10 16 views
5

J'ai besoin de déboguer une application de confiance totale soit en spécifiant une URL ou, idéalement, à partir de l'application Web que j'ai l'intention de déployer. Je l'ai essayé ce qui suit:Comment déboguer un fichier XBAP publié dans VS2010?

  • Running "PresentationHost.exe -embedding" de la ligne de commande, la fixation par Visual Studio. L'EDI montre que mes points d'arrêt sont valides jusqu'à ce que j'essaie réellement de charger le fichier .xbap, à quel point il montre qu'il n'y a pas de symboles chargés. Aucun de mes points d'arrêt n'est touché. J'ai essayé "mage -cc" avant de faire cela selon plusieurs recommandations ailleurs.

  • URL codée en dur dans le panneau de débogage du projet, puis F5. Alternativement, "PresentationHost.exe -embedding -debug" et attacher au processus puis charger le fichier .xbap dans IE. Les deux résultat dans l'erreur suivante lorsque la page apparaît:

System.ArgumentException: formats 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(...) 

Répondre

4

Je l'ai trouvé. Le "PresentationHost.exe -embedding" fonctionnera, à condition que vous sélectionniez 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, une fois l'application réellement chargée. Pour clarifier:

  • Allez dans l'onglet Publier sur les propriétés du projet
  • Cliquez sur « Fichiers d'application ... »
  • Cochez la case « Afficher tous les fichiers »
  • Sélectionnez le fichier pdb pour l'exécutable être compris.
  • Republier
  • PresentationHost.exe -embedding
  • Fixer pour traiter ou définir le projet pour exécuter ce sur l'onglet débogage
  • Lancez la page Web dans un navigateur et accédez au fichier XBAP, des points d'arrêt doivent être frapper maintenant.
+0

Merci, mais pourriez-vous expliquer ce que vous voulez dire avec 'PresentationHost.exe -embedding' J'ai un winform enveloppé dans le xbap et peut attacher mais ne peut pas frapper breakpoitns ... – Pogrindis

2

Si vous avez accès au code source et que vous le déployez sur localhost, vous pouvez simplement ajouter System.Diagnostics.Debugger.Launch(); dans votre code. Cela vous permettra de joindre avec VS à tout processus que votre XBAP utilise.