使SSIS包使用包配置(.dtsConfig文件)而不是变量

时间:2017-12-27 07:25:31

标签: ssis ssis-2012

我创建了一个SSIS包。我想在我的本地使用Variables进行开发。但是,当我将此包移至QA时,我想使用XML包配置文件( .dtsConfig ),以便它将使用特定于环境的值。我通过将 .dtsConfig文件路径保留在环境变量&中来使用间接配置文件我也开启"启用套餐配置"

我生成了.dtsConfig文件,对其进行了必要的更改(针对特定于环境的值)。复制.dtsx& .dtsConfig文件到不同的服务器。在服务器上创建环境变量,其值为.dtsConfig文件的路径。从SQL作业调用SSIS包。

但是,在服务器上,它使用的是Variables值,而不是.dtsConfig文件中的值。在本地,它使用.dtsConfig文件中的值。我想要完全相反的行为。

我在这里缺少什么?这种行为还有其他一些属性吗?

注意:在"配置"中添加.dtsconfig文件路径SQL作业的选项卡,使用包配置文件中的值。但是我想利用.dtsConfig文件路径的环境变量

1 个答案:

答案 0 :(得分:1)

当进程启动时,环境变量会被缓存,因此在重新启动进程之前,添加新变量是不可见的,无论是BIDS还是SQL Agent或其他东西。 [来自互联网上的来源]

重新启动SQL Server后,它开始使用间接包配置(.dtsConfig)文件。但是,重启所有环境的DB服务器并不是一个可行的解决方案。所以我更喜欢使用SQL Job配置。即在作业配置中添加.dtsConfig文件路径。

在开发过程中,我必须在创建环境变量后重新启动Visual Studio。为了确认这种行为,我遵循了以下步骤:

  1. 创建了两个.dtsConfig文件。 Config_Error.dtsConfig& Config.dtsConfig。名称不言自明。 Config_Error.dtsConfig文件有错误。因此,当环境变量具有Config_Error.dtsConfig文件路径时,包应该失败。
  2. 创建指向Config.dtsConfig文件路径的环境变量。
  3. 在Visual Studio中打开解决方案。
  4. 在调试模式下执行包。执行成功如预期。
  5. 将环境变量值更改为指向Config_Error.dtsConfig文件路径。
  6. 在调试模式下执行包。执行仍然成功。但是,它应该失败,因为.dtsConfig现在具有无效值。这意味着,Visual Studio调试器仍然无法使用环境变量的修改值。
  7. 重新启动Visual Studio。
  8. 在调试模式下执行包。执行失败,如预期。即重新启动后,Visual Studio获得了环境变量的修改值。
  9. 因此,如果我们使用环境变量,则应在任何更改后重新启动Consuming程序。