5

I need to debug a full-trust application either by specifying a URL or, ideally, from within the web app I am intending to deploy it to. I've tried the following:

  • Running "PresentationHost.exe -embedding" from the command-line, attaching through Visual Studio. The IDE shows that my breakpoints are valid until I actually attempt to load the .xbap file, at which point it shows that there are no symbols loaded. None of my breakpoints are hit. I've tried "mage -cc" before doing this per several recommendations elsewhere.

  • Hard-coded URL in the project's Debug panel then F5. Alternatively, "PresentationHost.exe -embedding -debug" and attach to process then load the .xbap in IE. Both result in the following error when the page appears:

System.ArgumentException: URI formats are not supported.

   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(...)
Community
  • 1
  • 1
flatline
  • 42,083
  • 4
  • 31
  • 38

2 Answers2

4

Found it. The "PresentationHost.exe -embedding" will work, provided that you select the .pdb file to be published, which it is not by default. This follows from what I saw before, where the debugger appeared to have symbols then not, once the app actually loaded. To clarify:

  • Go into the Publish tab on the project properties
  • Click "Application Files..."
  • Check "Show all files"
  • Select the .pdb file for the executable to be included.
  • Republish
  • PresentationHost.exe -embedding
  • Attach to process or set the project to run this out of the debug tab
  • Launch the web page in a browser and navigate to the xbap file, breakpoints should be hit now.
flatline
  • 42,083
  • 4
  • 31
  • 38
  • Thanks, but could you explain what you mean with `PresentationHost.exe -embedding` I have a winform wrapped in the xbap and can attach but cant hit breakpoitns.. . – Pogrindis Apr 23 '15 at 10:30
2

If you have access to source code and you deploy on localhost you can simply add System.Diagnostics.Debugger.Launch(); in your code. This will allow You to attach with VS to any process your XBAP is using.

Grzegorz W
  • 3,487
  • 1
  • 21
  • 21