.net 诊断DebuggerTypeProxy属性不工作的原因

.net 诊断DebuggerTypeProxy属性不工作的原因,.net,visual-studio,visual-studio-2008,debugging,.net,Visual Studio,Visual Studio 2008,Debugging,我试图通过添加属性使COM对象的包装器在调试时更易于使用-该属性在某些时候似乎可以工作(当运行单元测试等时),但在我实际调试目标进程时不起作用,我不知道为什么: 我已经检查以确保模块窗口中加载了正确的程序集,甚至拆解了程序集以确保它是正确的,并且具有正确的属性等等 我已经尝试过公开我的调试代理类,但是没有任何区别 我在调试外部进程时在即时窗口中使用了反射,并且看到我定义的属性似乎是正确的 其他定义了DebuggerTypeProxy属性的类(在同一个程序集中)似乎工作得很好——我就是不明白为

我试图通过添加属性使COM对象的包装器在调试时更易于使用-该属性在某些时候似乎可以工作(当运行单元测试等时),但在我实际调试目标进程时不起作用,我不知道为什么:

  • 我已经检查以确保模块窗口中加载了正确的程序集,甚至拆解了程序集以确保它是正确的,并且具有正确的属性等等
  • 我已经尝试过公开我的调试代理类,但是没有任何区别
  • 我在调试外部进程时在即时窗口中使用了反射,并且看到我定义的属性似乎是正确的
其他定义了DebuggerTypeProxy属性的类(在同一个程序集中)似乎工作得很好——我就是不明白为什么

  • 我的DebuggerTypeProxy属性在目标进程中不起作用还有其他原因吗
  • 是否有其他方法可以调试/排除属性无效的原因

鉴于您正在使用Visual Studio 2010,我怀疑是嵌入互操作类型功能导致了此问题。尝试关闭嵌入互操作类型并重复您的解决方案

  • 转到解决方案资源管理器中的“引用”项
  • 选择每个引用
  • 打开属性网格
  • 将“嵌入互操作类型”更改为false
  • 重建

然后重复您的场景。

我遇到了同样的问题,发现答案是取消选中“工具>选项>调试>常规设置”中的“在变量窗口中显示对象的原始结构”。

在Asp.net应用程序中,问题在于代码访问安全性。 当应用程序以完全信任的方式运行时,一切正常。
对于部分信任-DebuggerTypeProxy属性不起作用

我也偶然发现了这个问题

DebuggerTypeProxy在中等信任中无法正常工作

通过将DebuggerTypeProxy类从私有嵌套类(在作为调试器代理的容器类中)移动到直接位于命名空间(非嵌套)下的内部类,问题得以解决


以防万一,其他人也会遇到同样的问题。

使用托管兼容性模式应在工具选项调试常规

中取消选中。啊-抱歉,我没有标记问题VS2010,但这实际上发生在VS2008上。(对不起)@Kragen不知怎么漏掉了你的评论。您使用的是什么语言?调试器类型代理等。。。都是用C#@Kragen编写的,这是只在附加到进程时发生的还是F5也会发生?