如何在VS2010中调试已发布的XBAP文件?

时间:2010-09-10 21:52:21

标签: c# debugging xbap

我需要通过指定URL来调试完全信任的应用程序,或者理想情况下,从我打算将其部署到的Web应用程序中调试。我尝试了以下内容:

  • 从命令行运行“PresentationHost.exe -embedding”,通过Visual Studio附加。 IDE显示我的断点有效,直到我实际尝试加载.xbap文件,此时它显示没有加载符号。我的断点都没有被击中。在执行此操作之前,我已尝试过“mage -cc”。其他几项建议。

  • 项目调试面板中的硬编码URL,然后是F5。或者,“PresentationHost.exe -embedding -debug”并附加到进程然后在IE中加载.xbap。当页面出现时,两者都会导致以下错误:

  

System.ArgumentException:不支持URI格式。

   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(...)

2 个答案:

答案 0 :(得分:4)

找到它。 “PresentationHost.exe -embedding”将起作用,前提是您选择要发布的.pdb文件,默认情况下不是这样。这是从我之前看到的,一旦应用程序实际加载,调试器似乎有符号然后没有。澄清:

  • 进入项目属性
  • 上的“发布”标签
  • 点击“申请文件...”
  • 选中“显示所有文件”
  • 选择要包含的可执行文件的.pdb文件。
  • 重新发布
  • PresentationHost.exe -embedding
  • 附加到流程或将项目设置为从调试选项卡
  • 运行
  • 在浏览器中启动网页并导航到xbap文件,现在应该点击断点。

答案 1 :(得分:2)

如果您有权访问源代码并在localhost上部署,则只需在代码中添加System.Diagnostics.Debugger.Launch();即可。这将允许您将VS附加到XBAP正在使用的任何进程。