独立 SQL Server Integration Services (SSIS) DevOps 工具

独立 SSIS DevOps 工具 提供一组可执行文件来执行 SSIS CICD 任务。 如果不依赖于安装 Visual Studio 或 SSIS 运行时,这些可执行文件可以轻松与任何 CICD 平台集成。 提供的可执行文件包括:

  • SSISBuild.exe:在项目部署模型或包部署模型中生成 SSIS 项目。
  • SSISDeploy.exe:将 ISPAC 文件部署到 SSIS 目录,或将 DTSX 文件及其依赖项部署到文件系统。

安装

需要 .NET Framework 4.6.2 或更高版本。

下载中心下载最新安装程序。 此外,直接下载链接 可用于自动化脚本。

然后通过向导或命令行进行安装:

  • 通过向导安装

双击要安装的 .exe 文件,然后指定要提取可执行文件和依赖项文件的文件夹。

安装位置

  • 通过命令行安装
SSISDevOpsTools.exe /Q /C /T:<full path>

安装命令行

SSISBuild.exe

语法

SSISBuild.exe -project|-p:<dtproj file path> [-configuration|-c:<configuration name>] [-projectPassword|-pp:<project password>] [-stripSensitive|-ss] [-output|-o:<output path>] [-log|-l:<log level>[;<log path>]] [-quiet|-q] [-help|-h|-?]

参数

参数 描述
-project |-p:<dtproj 文件路径> 要生成的 dtproj 文件的文件路径。
-configuration|-c:<配置名称> 要用于生成的项目配置的名称。 如果未提供,则默认为 dtproj 文件中第一个定义的项目配置。
-projectPassword|-pp:<项目密码> SSIS 项目及其包的密码。 仅当 SSIS 项目和包的保护级别为 EncryptSensitiveWithPassword 或 EncryptAllWithPassword 时,此参数才有效。 对于包部署模型,所有包都必须共享此参数指定的相同密码。
-stripSensitive|-ss 将 SSIS 项目的保护级别转换为 DontSaveSensitive。 当保护级别为 EncryptSensitiveWithPassword 或 EncryptAllWithPassword 时,必须正确设置参数 -projectPassword。 此选项仅适用于项目部署模型。
-output|-o:<输出路径> 构建工件的输出路径。 此参数的值将覆盖项目配置中的默认输出路径。
-log|-l:<日志级别>[;<日志路径>] 记录相关设置。
  • 日志级别:仅将具有相同或更高日志记录级别的日志写入日志文件。 有四个日志记录级别(从低到高):DIAG、INFO、WRN、ERR。 如果未指定默认日志记录级别,则为 INFO。
  • 日志路径:要保存日志的文件的路径。 如果未指定路径,则不会生成日志文件。
  • -quiet|-q 不向标准输出显示任何日志。
    -help|-h|-? 显示此命令行实用工具的详细使用情况信息。

    示例

    • 使用第一个定义的项目配置生成 dtproj,而不使用密码进行加密:

      SSISBuild.exe -p:"C:\projects\demo\demo.dtproj"
      
    • 使用配置“DevConfiguration”生成 dtproj,使用密码加密,并将生成项目输出到特定文件夹:

      SSISBuild.exe -p:C:\projects\demo\demo.dtproj -c:DevConfiguration -pp:encryptionpassword -o:D:\folder
      
    • 使用配置“DevConfiguration”生成 dtproj,使用密码进行加密,剥离其敏感数据,并将日志级别设置为 DIAG:

      SSISBuild.exe -p:C:\projects\demo\demo.dtproj -c:DevConfiguration -pp:encryptionpassword -ss -l:diag
      

    SSISDeploy.exe

    语法

    SSISDeploy.exe -source|-s:<source path> -destination|-d:<type>;<path>[;server] [-authType|-at:<auth type name>] [-connectionStringSuffix|-css:<connection string suffix>] [-projectPassword|-pp:<project password>] [-username|-u:<username>] [-password|-p:<password>] [-log|-l:<log level>[;<log path>]] [-quiet|-q] [-help|-h|-?]
    

    参数

    参数 描述
    -source|-s:<源路径> 要部署的工件的本地文件路径。 允许使用 ISPAC、DTSX、DTSX 的文件夹路径以及 SSISDeploymentManifest。
    -destination|-d:<类型>;<路径>[;server] 目标类型、目标文件夹的路径以及要将源文件部署到的 SSIS 目录的服务器名称。 目前,我们支持以下两种目标类型:
  • CATALOG:将单个或多个 ISPAC 文件部署到指定的 SSIS 目录。 CATALOG 目标的路径应采用以下格式:
    /SSISDB/<文件夹名称>[/<项目名称>]
    仅当源指定单个 ISPAC 文件路径时,可选的 <项目名称> 才有效。 必须为 CATALOG 目标指定服务器名称。
  • FILE:将单个或多个 SSISDeploymentManifest 文件中指定的 SSIS 包或文件部署到文件系统的指定路径。 FILE 目标的路径可以是本地文件夹路径,也可以是采用以下格式的网络文件夹路径:
    \\<计算机名称>\<文件夹名称>[\<子文件夹名称>...]
  • -authType|-at:<身份验证类型名称> 用于访问 SQL Server 的身份验证类型。 对于 CATALOG 目标是必需的。 支持以下类型:
  • WIN:Windows 身份验证
  • SQL:SQL Server 身份验证
  • ADPWD: Active Directory - 密码
  • ADINT:Active Directory - 集成
  • -connectionStringSuffix|-css:<连接字符串后缀> 连接字符串的后缀,用于连接到 SSIS 目录。
    -projectPassword|-pp:<项目密码> 用于解密 ISPAC 或 DTSX 文件的密码。
    -username|-u:<用户名> 用于访问指定 SSIS 目录或文件系统的用户名。 允许用于文件系统访问的域名前缀。
    -password|-p:<密码> 用于访问指定 SSIS 目录或文件系统的密码。
    -log|-l:<日志级别>[;<日志路径>] 记录运行此实用工具的相关设置。
  • 日志级别:仅将具有相同或更高日志记录级别的日志写入日志文件。 有四个日志记录级别(从低到高):DIAG、INFO、WRN、ERR。 如果未指定默认日志记录级别,则为 INFO。
  • 日志路径:要保存日志的文件的路径。 如果未指定路径,则不会生成日志文件。
  • -quiet|-q 不要在标准输出中显示日志。
    -help|-h|-? 显示此命令行实用工具的详细使用情况信息。

    示例

    • 使用 Windows 身份验证将未使用密码加密的单个 ISPAC 部署到 SSIS 目录。

      SSISDeploy.exe -s:D:\myfolder\demo.ispac -d:catalog;/SSISDB/destfolder;myssisserver -at:win
      
    • 使用 SQL 身份验证将使用密码加密的单个 ISPAC 部署到 SSIS 目录,并重命名项目名称。

      SSISDeploy.exe -s:D:\myfolder\test.ispac -d:catalog;/SSISDB/folder/testproj;myssisserver -at:sql -u:sqlusername -p:sqlpassword -pp:encryptionpassword
      
    • 将单个 SSISDeploymentManifest 及其关联的文件部署到 Azure 文件共享。

      SSISDeploy.exe -s:D:\myfolder\mypackage.SSISDeploymentManifest -d:file;\\myssisshare.file.core.windows.net\destfolder -u:Azure\myssisshare -p:storagekey
      
    • 将 DTSX 文件的文件夹部署到本地文件系统。

      SSISDeploy.exe -s:D:\myfolder -d:file;\\myssisshare\destfolder
      

    发行说明

    版本 1.0.0.0

    发布日期:2021 年 9 月 1 日

    • 正式发布 (GA) 版。

    版本 0.1.3.1 预览版

    发布日期:2021 年 6 月 10 日

    • 修复了问题:SSISDeploy.exe 部署 SSIS 项目失败,收到错误“未经处理的异常: System.IO.FileLoadException: 无法加载文件或程序集 "Microsoft.SqlServer.IntegrationServices.ProjectDeployment, Version=1.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35" 或其依赖项之一。 强名称验证失败。 (来自 HRESULT 的异常: 0x8013141A) ---> System.Security.SecurityException: 强名称验证失败。 (来自 HRESULT 的异常: 0x8013141A)”。

    版本 0.1.3 预览版

    发布日期:2021 年 6 月 2 日

    • 修复了 SSISBuild.exe 无法构建项目的错误,错误信息为“项目一致性检查失败”。 当项目中的包名称包含特殊字符时,检测到以下不一致。
    • 修复了当 dtproj 中的名称与文件名不匹配时,SSISBUild.exe 无法生成项目的问题。
    • 修复了当项目面向 SQL Server 2016 时,SSISBuild.exe 无法生成具有保护级别 encryptSensitiveWithPassword/EncryptAllWithPassword 的项目的问题。

    版本 0.1.2 预览版

    发布日期:2021 年 1 月 14 日

    • 修复了以下问题:SSIS 项目文件中的包参数元数据与 SSIS 包不匹配时,SSISBuild.exe 无法生成项目且出现 NullReference 异常。
    • 修复了以下问题:当已使用 EncryptSensitiveWithUserKey 对包含包的 SSIS 项目进行加密并且该包包含具有敏感数据的 CM 时,尽管已使用 SSISDeploy.exe 将包成功部署到 SSISDB,但包无法执行且出现以“无法解密受保护的 XML 节点”开头的错误。

    版本 0.1.1 预览版

    发布日期:2020 年 11 月 11 日

    • 修复了将 ispac 部署到 SSIS 目录时 SSISDeploy.exe 无法加载程序集的问题。

    版本 0.1.0 预览版

    发布日期:2020 年 10 月 16 日

    独立 SSIS DevOps 工具的初始预览版。

    后续步骤