如何使SSIS(dtexec)使用备用配置文件?

Ber*_*ann 4 configuration ssis

我已将SSIS配置配置为从XML文件加载.当我使用dtexec运行包时,我为我正在处理的每个国家/地区指定了不同的配置文件.在Visual Studio中,我将其指定为France.dtsConfig(我必须选择一个,这是第一个).

当我运行包时,dtexec /FILE Import.dtsx /Reporting V /ConfigFile "C:\Italy.dtsConfig"我仍然看到输出告诉我"包正在尝试从XML文件France.dtsConfig配置".

我以为我可以通过为每个国家/地区提供不同的dtsConfig文件来覆盖配置.这可能吗?我究竟做错了什么?

Ant*_*y K 10

我正在使用SQL Server 2008 R2,我遇到了相同的问题,显然忽略了配置覆盖.我发现我需要的技巧是从包中删除XML配置设置(包配置),然后在运行包时应用您指定的XML配置文件.但是,没有关于使用该文件的消息(并且由于您从包中删除了XML配置定义,因此也不会发出该消息).

MSDN有一个解释(请参阅"了解运行时如何应用SSIS包配置"一节),起初对我没有意义,但在发现没有定义XML配置文件后会得到所需的结果,我可以看看它想说什么.

在我的例子中,我使用XML文件来设置找到[SSIS配置]表的服务器的实例名称.在设计时,这是连接管理器对象中的DEVServer,我想将值覆盖到TESTSvr.遵守规则:

  1. "该实用程序在设计时应用程序包中指定的配置,并按程序包中指定的顺序应用." 因此从包中加载值DEVServer.
  2. "然后,该实用程序将应用您在命令行中指定的任何选项." 现在加载了我的XML文件(TESTSvr)中的值.我可以提供我喜欢的任何文件名,它将被加载(无论是法国还是意大利).
  3. "然后,该实用程序将重新加载在程序包中指定的配置,并按照程序包中指定的顺序重新加载....该实用程序使用指定的任何命令行选项来重新加载配置." 请注意规则的第二部分,关于使用命令行值.由于我们当前已将服务器设置为TESTSvr,因此该值现在用于从[SSIS Configurations]表中加载所需的其他配置值.


Ber*_*ann 7

我没有提到记录此行为的文章,但我已经确认了.如果在程序包配置中指定为配置文件的文件在运行时可用,则将优先使用它在命令行上指定的文件.

根据我的经验和我的观点,这与正常行为相反,在命令中指定某些内容应该覆盖内置默认值.

若要在DTEXEC命令指定的配置文件,重命名或删除在指定的文件配置字符串中的XML配置文件包配置管理.