System.Diagnostics调试类丢失?

4
我正在尝试使用System.Diagnostics.Debug.WriteLine()将一些调试输出写入输出窗口。据我所知,能够使用System.Diagnostics类的唯一要求是添加System命名空间(默认已存在)。我有一个项目可以使用Debug类,如下所示:
但我的当前项目没有显示Debug类,让我感到困惑:
有什么建议吗?
编辑:这就是问题所在——我最初将我的外部类文件添加为“解决方案项”,它放置在一个文件夹的顶部。当程序因Form1对命名空间的引用失败而无法编译时,我只需将类文件从解决方案文件夹拖动到程序文件夹中(缺乏更好的描述)。正是这种重复和版本不匹配导致了我的问题。一旦我删除了对“解决方案项”的引用,我的断点就能够正常工作,并且System.Diagnostics.Debug类在我的类文件中也可用。
问题已解决:
2个回答

5

所有版本和配置文件中都支持Debug类。在Intellisense中未显示出来的最可能原因是:

  1. 缺少Debug所在的System.dll引用
  2. Intellisense Bug(这里可能性不大)

最可能的原因是#1。请确保您有适当的引用。


当您开始一个新项目(我已经这样做了)而不仅仅是一个新的类文件时,VS会自动创建对System.dll的引用。我验证了引用是否存在,并且工作正常的项目和不工作的项目的DLL版本相同。我将尝试保存、关闭,然后重新打开我的项目,看看智能感知是否能够识别它。 - spickles
@spickles 你尝试过实际编译对 Debug 的引用吗?这将告诉你它是否是 IntelliSense 错误。 - JaredPar
啊,是的,我做了那个。我包含了 'System.Diagnostics.Debug.WriteLine("Test")',虽然智能感知没有将其标为无效代码行,但它仍然没有输出到控制台。 - spickles
@spickles,它是否输出与是否编译不同。如果已编译,则表示Intellisense无法捕捉到它,即使它存在。 - JaredPar
我正在尝试从我的类文件向输出窗口写入内容,该文件与主窗体处于不同的命名空间。由于我已经添加了引用,主窗体可以访问我的类。但是这里无法正常工作,而在主窗体中可以正常工作。这不是一种常见做法吗?我只是在我的 try/catch 块中写入输出窗口,所以对我来说似乎并不异常。 - spickles
显示剩余5条评论

2

尝试使用

global::System.Diagnostics.Debug

解决了我的问题!谢谢! - Casey

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接