将警告视为错误

时间:2011-11-15 16:16:11

标签: visual-studio

我正在尝试让VS将以下警告视为错误。既没有特定警告也没有所有警告(在项目选项中)都没有成功。

输出

C:\Windows\Microsoft.NET\Framework\v4.0.30319\Microsoft.Common.targets(1490,5): warning MSB3247: Found conflicts between different versions of the same dependent assembly.

错误列表

Warning 1   Found conflicts between different versions of the same dependent assembly.

我试图解决的问题是:MyApp引用了LibA v1和LibB v1。 LibB v1引用了LibA v2。起初没有关于版本差异的通知。签署程序集会发出警告。如果可能的话,我想将其视为一个错误,因为这些通知会比一个可以忽略的警告快得多。

更新 在与Phil的回答合作之后,我现在正在使用这个宏。可能为此制作插件,但我现在没有时间这样做。

Private Sub BuildEvents_OnBuildDone(ByVal Scope As EnvDTE.vsBuildScope, ByVal Action As EnvDTE.vsBuildAction) Handles BuildEvents.OnBuildDone
    ' Create a tool window handle for the Output window.
    Dim win As Window = DTE.Windows.Item(EnvDTE.Constants.vsWindowKindOutput)
    ' Create handles to the Output window and its panes.
    Dim OW As OutputWindow = win.Object

    OW.ActivePane.TextDocument.Selection.SelectAll()
    If OW.ActivePane.TextDocument.Selection.Text.Contains("MSB3247") Then
        System.Windows.Forms.MessageBox.Show("Found conflicts between different versions of the same dependent assembly.", "warning MSB3247")
    End If
End Sub

1 个答案:

答案 0 :(得分:4)

请注意,MSB警告不是编译器警告,因此无法由/ warningaserror处理。

也许你可以添加post build动作来解析你的构建输出,如果你找到MSB3247,你可以删除构建输出并播放命运交响乐