在附加到发布版本时,是否有任何工具可以用来调试信息?

Are there any tools I can use to debug information while attached to a release version?

在虚拟机上,我无意中重现了每年只出现一次或两次的问题。该软件处于只要应用程序处于活动状态且 运行,我就可以重现该问题的状态。唯一的问题是一切都是在发布时构建的。因此,当我使用 Visual Studio 进行调试并尝试查看某些值时,我收到以下消息:

Cannot evaluate expression because the code of the current method is optimized.

据我所知,解决此问题的唯一方法是在调试中构建。不幸的是,这是不可能的,因为一旦我关闭应用程序并在调试而不是发布中重新启动它,我可能再也没有机会重现这个问题。

是否有任何工具或任何我可以做的事情来使软件保持当前状态,同时又能够检索我感兴趣的一些值?同样,这是一个发布版本,所以我意识到缺少很多调试所需的信息。我确实有我感兴趣的程序集的发布 pdbs/源代码。这不太重要,但我正在尝试查看 Window 对象的 IsLoaded 属性 可能其他一些属性。

也许您可以尝试项目属性 - 构建 - 高级 - 调试信息 = 完整?

根据 this 的回答,我认为这将允许您附加调试器。线程中的其他答案对此选项的影响有不同的答案,但值得一试。

我终于能够使用 Snoop, a WPF Spy Utility. It gave me the value of the IsLoaded property I was interested in. Some peers also mentioned using Ants Memory Profiler 解决这个问题,但是它非常昂贵并且使用起来并不简单。