好的,经过几次测试,我想我已经弄清楚它是如何在清单部署中起作用的。
当您单击清单文件时,它将要求部署目标。
您可以选择远程SQL服务器,没问题,SSIS包将被部署到数据库中(默认情况下在master,msdb.dbo.sysssispackages下,除非远程SQL服务器中的MsDtsSrvr.ini.xml文件是改性)。
但是,如果您的SSIS包使用任何dtsconfig文件,清单部署有点傻。
首先,它试图通过询问你一个新的系统文件路径来将你的本地dtsconfig文件复制过来。是的,即使您选择将SSIS包部署到数据库,dtsconfig文件也不会与您的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:\ in远程SQL服务器(即使您已指定在第一步中将其部署到远程SQL服务器上)。但与此同时,部署在远程SQL服务器中的SSIS包正在更新为此文件路径,该文件路径实际上指向C:\ IN THE REMOTE SQL服务器...
最后,您将不得不使用远程桌面将您的dtsconfig文件复制到远程SQL Server系统文件目录。
通常在使用清单文件部署任何paackage时。 dtsconfig文件从部署它的文件系统路径中使用。尝试从文件系统中删除dtsconfig并运行包。 – Pratik
通常使用SQL代理作业运行这些SSIS包。在配置此作业时,可以选择一个包以及.dtsconfig文件。该软件包可以来自SQl Server msdb,但.dtsconfig可以位于文件存储区(通常位于SQL Server本地文件夹或UNC上)。 – user1826905