以编程方式部署时,带有脚本任务的SSIS包不起作用

时间:2018-11-26 16:27:30

标签: c# sql-server powershell ssis

我遇到一个奇怪的问题,即如果以自动方式(通过C#或使用PowerShell)完成项目部署,则作为ISPAC文件的一部分部署的SSIS包的脚本组件将失败。在服务器上执行程序包时,使用Visual Studio中的Integration Services部署向导部署完全相同的项目不会引起任何错误。

但是,执行C#(使用Microsoft.SqlServer.Management.IntegrationServices部署的程序包时,系统名称空间缺少一些错误,例如:

  

DFT加载STG_ETL_TEST_STAGING_CDC:错误:CS0234-类型或   名称空间名称'ComponentModel'在名称空间中不存在   '系统'(您是否缺少装配参考?),   Properties \ Resources.Designer.cs,59,25

     

DFT加载STG_ETL_TEST_STAGING_CDC:错误:CS0234-类型或   名称空间名称'CodeDom'在名称空间'System'中不存在(   您是否缺少程序集引用?),Properties \ Resources.Designer.cs,   25、21

我导出了已部署的软件包并比较了它们的文件大小。我注意到手动部署项目的ISPAC略大于以编程方式部署的ISPAC。部署向导对自动部署过程中没有发生的事情做了什么?

为排除它与我的C#代码有关,我还尝试了Microsoft docs中的以下PowerShell脚本。但是,它的确使用与我的代码(Microsoft.SqlServer.Management.IntegrationServices)中相同的程序集,并且已部署的程序包也存在相同的问题。

1 个答案:

答案 0 :(得分:0)

我应该提到该项目是由Biml生成的。原来,该问题与二进制文件无关,而与Biml编译器创建的ISPAC文件有关。使用VS(使用devenv.com theproject.dtproj -build)再次构建项目,为我解决了这个问题,并允许以编程方式部署项目。