是否可以使用SSIS包dtsConfig文件的相对路径?

duc*_*rth 19 sql-server ssis etl

我试图使我们的SQL Server Integration Services包尽可能可移植,并且阻止这一点的一件事是配置的路径始终是绝对路径,这使得测试和部署成为一个令人头疼的问题.是否有任何建议使这更容易管理?

另一个问题是,当另一个开发人员从源代码​​控制中获取该包时,该路径特定于开发人员机器.

Mal*_*har 14

如果您尝试使用Visual Studio执行包,则配置文件路径将在那里进行硬编码.因此,如果您移动项目,则需要更改包设置中的路径.为避免这种情况,您可以使用Environment变量选项来存储配置文件路径.然后你只需要改变它.

但是,对于测试和部署,您应该使用dtexec实用程序来执行包.为此制作一些批处理文件.优选地,每个不同环境一个.这里配置文件路径可以是相对的.

dtexec /File Package.dtsx /Conf configuration.dtsConfig"
Run Code Online (Sandbox Code Playgroud)

如果你的包是在文件系统上的话.您还可以将它们存储在SQL Server中.您还可以将配置存储在SQL Server中,这可以提供灵活性.

  • 请注意,如果您已经检查了SSIS - >"启用包配置",它将忽略您在/ Conf参数中放置的内容并使用硬编码到包中的内容. (6认同)
  • 1表示环境变量.这对多个开发人员来说是一个很好的解决方案 (3认同)