22

我正在尝试使我们的 SQL Server 集成服务包尽可能可移植,而阻止这一点的一件事是配置的路径始终是绝对路径,这使得测试和部署令人头疼。有什么建议可以让这更易于管理吗?

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

4

4 回答 4

15

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

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

dtexec /File Package.dtsx /Conf configuration.dtsConfig

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

于 2008-10-24T13:30:12.913 回答
2

经过几个小时尝试完成这项工作后,我在这里找到了一个解决方案(不是最好的,但它有效)

  1. 在与解决方案文件(.sln 文件)相同的目录中找到您的配置文件(dtsconfig 文件)
  2. 始终通过双击解决方案文件(.sln 文件)打开您的解决方案。这会将“工作文件夹”设置为解决方案所在的位置,您的配置文件将被正确读取

否则,相对路径对我不起作用。

于 2012-05-10T09:47:03.353 回答
1

查看可以在没有 BIDS 的情况下编辑 SSIS 配置文件路径的免费实用程序:http: //ssisconfigeditor.codeplex.com/

于 2012-05-19T05:40:59.227 回答
0

我解决这类问题的标准技巧是映射驱动器。

通过使用映射的网络驱动器或使用Subst(这两种方法都是可互换的)。

例如,将包的位置映射到 N:\,然后在包中使用 N:\MyParentPackage.dtsx、N:\MyChildPackage.dtsx 的路径。这些包可以位于不同机器上不同文件夹中的完全不同的驱动器上,一旦将包位置映射到 N:\

我通常在项目文件旁边放一个脚本来映射驱动器,它映射驱动器以便它可以在之前轻松运行。一个问题,如果您在 VISTA - Win8 上使用 subst,请将其映射为提升和非提升。

我对 Visual Studio 项目中的文件引用使用相同的方法。这种方法唯一的问题是,你用来解决开发环境中的太多问题,你会用完驱动器号。

于 2013-10-17T02:13:22.347 回答