如何获取解决方案中所有 SSIS 包的所有错误

Joh*_*ntu 4 sql-server ssis etl build visual-studio

在 Visual Studio 2015 中,我dtsx在 SSIS 包文件夹中有 3 个解决方案。我重新构建解决方案并获得成功。只有当我一个接dtsx一个地打开时,我才注意到其中一些(不是全部)实际上有几个问题。

有没有办法在错误列表中得到这些问题的列表,还是需要dtsx一一打开?

Had*_*adi 5

不幸的是,如果不打开包或使用DTExec Utility. 但是您可以采取一些解决方法并以编程方式检查获取错误:

解决方法

  1. 我使用visual studio(使用Vb.Net)创建了一个winforms应用程序
  2. 我添加Microsoft.SqlServer.DTSPipelineWrapMicrosoft.SQLServer.ManagedDTS作为参考
  3. 我使用以下代码循环特定目录中的包,验证并将错误放入日志文件中:

    Dim strPackagesDirectory As String = "C:\Users\Admin\Desktop\New folder"
    Dim strOutputLogFile As String = "D:\1.txt"
    
    For Each strFile As String In IO.Directory.GetFiles(strPackagesDirectory, "*.dtsx", IO.SearchOption.TopDirectoryOnly)
    
        Dim pckg As New Microsoft.SqlServer.Dts.Runtime.Package
        Dim app As New Microsoft.SqlServer.Dts.Runtime.Application
    
        pckg = app.LoadPackage(strFile, Nothing)
        Dim obj = pckg.Validate(Nothing, Nothing, Nothing, Nothing)
    
        If pckg.Errors.Count > 0 Then
    
            Using sr As New IO.StreamWriter(strOutputLogFile, True)
                sr.WriteLine("")
                sr.WriteLine(strFile)
                sr.WriteLine("--------------")
                For Each err As Object In pckg.Errors
    
    
                    sr.WriteLine(err.Description)
    
                Next
    
                sr.WriteLine("==========")
                sr.Close()
            End Using
    
        End If
    Next
    
    Run Code Online (Sandbox Code Playgroud)

参考