好的,经过几次测试,我想我已经弄清楚了它在清单部署中是如何工作的。
当您单击清单文件时,它会询问部署目标。
可以选择远程SQL server,没问题,SSIS包会部署到数据库中(默认在master下,msdb.dbo.sysssispackages,除非修改了远程SQL server中的MsDtsSrvr.ini.xml文件)。
但是,如果您的 SSIS 包使用任何 dtsconfig 文件,那么清单部署就有点傻了。
首先,它通过询问您一个新的系统文件路径来尝试变得聪明,以便它复制您的本地 dtsconfig 文件。是的,dtsconfig 文件不会与您的 SSIS 包一起存储,即使您选择将 SSIS 包部署到数据库。它必须存储在系统文件目录下。我的默认设置是 C:\Program Files (x86)\Microsoft SQL Server\100\DTS\Packages[源文件夹名称]。
清单部署很智能,因为如果您的 SSIS 包配置为使用来自任何路径(本地或远程)的 dtsconfig 文件,它可以通过将旧路径替换为您刚刚指定的新路径来更新您的 SSIS 包。但它不是那么聪明,因为如果您使用默认值(即 C:\Program Files (x86)\Microsoft SQL Server\100\DTS\Packages\MySSISProject),则此路径表示您的 C:\,而不是 C:\远程 SQL 服务器(即使您在第一步中已指定部署到远程 SQL 服务器)。但与此同时,您在远程 SQL 服务器中部署的 SSIS 包正在更新到此文件路径,该文件路径本质上指向远程 SQL 服务器中的 C:\...
最后,您将不得不使用远程桌面将 dtsconfig 文件实际复制到远程 SQL Server 系统文件目录。