我正在尝试使我们的SQL Server Integration Services包尽可能地可移植,并且阻止这一点的一件事是配置的路径始终是绝对路径,这使得测试和部署成为一个令人头疼的问题。是否有任何建议让这更容易管理?
另一个问题是,当另一个开发人员从源代码控制中获取该包时,该路径特定于开发人员计算机。
答案 0 :(得分:14)
如果您尝试使用Visual Studio执行包,则配置文件路径将在那里进行硬编码。因此,如果您移动项目,则需要更改包设置中的路径。为避免这种情况,您可以使用Environment变量选项来存储配置文件路径。然后你只需要改变它。
但是,对于测试和部署,您应该使用dtexec实用程序来执行包。为此制作一些批处理文件。优选地,每个不同环境一个。这里配置文件路径可以是相对的。
dtexec /File Package.dtsx /Conf configuration.dtsConfig"
如果你的包是在文件系统上的话。您还可以将它们存储在SQL Server中。您还可以将配置存储在SQL Server中,这可以提供灵活性。
答案 1 :(得分:2)
在尝试完成这项工作几个小时之后,我找到了一个解决方案here(不是最好的解决方案,但它有效)
否则相对路径对我不起作用。
答案 2 :(得分:1)
查看可以编辑没有BIDS的SSIS配置文件路径的免费实用程序: http://ssisconfigeditor.codeplex.com/
答案 3 :(得分:0)
我对这些问题的标准技巧是映射驱动器。
使用mapped network drive或使用Subst(两种方法都可以互换)。
e.g。使用N:\ MyParentPackage.dtsx,N:\ MyChildPackage.dtsx将包的位置映射到N:\然后在包中使用路径。这些软件包可以放在不同机器上不同文件夹中的完全不同的驱动器上,一旦将软件包位置映射到N:\
,它就可以工作我通常在项目文件旁放置一个脚本来映射驱动器,该驱动器映射驱动器以便以前可以轻松运行。一个问题,如果你在VISTA-Win8上使用subst,请将其映射为高架和非高架。
我在Visual Studio项目中使用相同的方法进行文件引用。只考虑这种方法,您可以在开发环境中解决太多问题,并且用完驱动器号。