在构建输出中打印消息(这不是警告)

Mat*_*ith 19 c# visual-studio-2010

在构建时,我希望能够将消息打印到构建输出窗口而不将其归类为警告.即在Visual Studio错误列表中,我希望仅在您打开"消息"过滤器时才显示它.

所以,我想要相同的功能, #warning Warning Message 但我不希望它被归类为警告.

语境:

我有很多项目目前会产生很多警告.我首先要做的是防止引入新的警告.所以,我:

  1. 打开"警告为错误"
  2. 通过并用于#pragma warning disable/restore消除现有警告.

但是,对于我禁用的警告,我想打印一条消息,指出此处有一个需要调查的警告(因为我还没有调查需要对这些警告做些什么).例如,许多警告都是"过时"类型的警告,我们确实需要在某些时候去做一些工作.所以,我不希望这些警告消失.

理想情况下,我会做这样的事情:

#pragma warning disable 0618
#message Existing Warning: 0618: IObsoleteInterface is obsolete.
class MyClass : IObsoleteInterface
#pragma warning restore 0618
Run Code Online (Sandbox Code Playgroud)

我对处理这个问题的其他方法持开放态度.

Dim*_*ima 8

根据MSDN你无法扩展#pragma:http://msdn.microsoft.com/en-us/library/x74w198a.aspx

但是如果ErrorList不是严格的要求,你可以解决这个问题:你可以使用注释来突出显示对你很重要的事情.如果您在评论的开头添加特殊标记,您将能够在TaskList窗口中跟踪它.
所以,你的代码看起来像:

#pragma warning disable 0618
//TODO: Existing Warning: 0618: IObsoleteInterface is obsolete.
class MyClass : IObsoleteInterface
#pragma warning restore 0618
Run Code Online (Sandbox Code Playgroud)

之后,如果您打开查看 - >任务列表 - >选择下拉列表中的注释,您将在那里看到您的评论.
有3个预定义标记:TODO,HACK和UNDONE - 您可以像MESSAGE一样添加自己的标记,并更改它的优先级,使您的代码看起来与您最初期望的类似:

#pragma warning disable 0618
//MESSAGE: Existing Warning: 0618: IObsoleteInterface is obsolete.
class MyClass : IObsoleteInterface
#pragma warning restore 0618
Run Code Online (Sandbox Code Playgroud)

有关令牌的更多信息,请访问:http://msdn.microsoft.com/en-us/library/zce12xx2(v = vs.100).aspx

值得一提的是,如果你使用Resharper,它还有另一个TODO工具.我会在这里找到它:ReSharper - >工具 - >待办事项