如果Visual Studio中的项目/解决方案中缺少文件,则报告错误/警告

JKJ*_*KJK 11 visual-studio

当您构建一个缺少文件的解决方案(带有感叹号的黄色三角形图标)时,Visual Studio是否有办法报告错误/警告,这些文件必然会导致编译错误?就像在运行时读取的缺少配置文件一样.

谢谢

Sim*_*ier 11

您需要定义EnvironmentEvents宏.请在此处查看有关如何执行此操作的一般说明:自定义项目构建过程.

以下是您可以直接粘贴到宏环境中以检查丢失文件的代码:

Private Sub BuildEvents_OnBuildBegin(ByVal Scope As EnvDTE.vsBuildScope, ByVal Action As EnvDTE.vsBuildAction) Handles BuildEvents.OnBuildBegin
    For Each proj As Project In DTE.Solution.Projects
        For Each item As ProjectItem In proj.ProjectItems
            If (item.Kind <> "{6BB5F8EE-4483-11D3-8BCF-00C04F8EC28C}") Then ' only check physical file items
                Continue For
            End If

            For i As Integer = 1 To item.FileCount
                Dim path As String = item.FileNames(i)
                If Not System.IO.File.Exists(item.FileNames(i)) Then
                    WriteToBuildWindow("!! Missing file:" & item.FileNames(i) + " in project " + proj.Name)
                End If
            Next
        Next
    Next
End Sub

Public Sub WriteToBuildWindow(ByVal text As String)
    Dim ow As OutputWindow = DTE.Windows.Item(EnvDTE.Constants.vsWindowKindOutput).Object
    Dim build As OutputWindowPane = ow.OutputWindowPanes.Item("Build")
    build.OutputString(text & Environment.NewLine)
End Sub
Run Code Online (Sandbox Code Playgroud)

它将直接在Visual Studio"Build"输出窗口中显示"missing files"文本.理解和调整您的需求应该相当容易.例如,您可以向错误输出添加错误.

  • Visual Studio 2012/2013不再支持宏,请参阅http://stackoverflow.com/questions/20689829/report-error-warning-if-missing-files-in-project-solution-in-visual-studio-2012/20711912 #20711912更新的解决方案 (2认同)