在Integration Services包(.dtsx)中使用类似$(ProjectDir)的变量

时间:2013-03-18 21:02:11

标签: service ssis package integration

这可能吗?

我有一个需要复制到三个不同服务器的软件包。每个服务器用于不同的测试环境。所有三台服务器都具有相同的目录布局。布局如下: * \ SERVER \ ConfigFiles * < - 这里是.dtsConfig文件。 * \ SERVER \ Packages * < - 这里是.dtsx文件。

我希望能够使用在三个3个不同服务器上复制的相同软件包而无需任何修改。 3台服务器之间的唯一区别是 .dtsConfig 文件中的内容。配置文件包含每个环境的Excel,日志和SQL服务器连接的目录。

例如。假设我有一个名为 Cars.dtsx 的软件包。这个包在所有三个服务器中完全相同。包文件指向 .dtsConfig 文件,该文件位于 ConfigFiles 文件夹中(可在所有三台服务器上找到)。我想要一个方法让包指向每个服务器上的 ConfigFiles \ Cars.dtsConfig 文件,但我想这样做而不必在目录中提供服务器的名称。

我尝试它的方式是使用“$(ProjectDir).. \ ConfigFiles \ Cars.dtsConfig”,如果我通过.sln文件而不是.dtsx运行包,这似乎有效文件。

我希望这不会太混乱。如果您需要更多信息,请告诉我。感谢。

1 个答案:

答案 0 :(得分:1)

除非我遗漏一些细微差别,否则你不需要做任何特别的事情。

您的软件包将具有对D:\ConfigFiles\Cars.dtsConfig的硬编码引用无论该软件包是从ServerA,ServerB还是ServerZ运行都是无关紧要的(只要您在这些服务器上具有相同的文件结构)

根据您提出的问题,您是否遇到了不同的事情?