我遇到一个奇怪的问题,即如果以自动方式(通过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
)中相同的程序集,并且已部署的程序包也存在相同的问题。
答案 0 :(得分:0)
我应该提到该项目是由Biml生成的。原来,该问题与二进制文件无关,而与Biml编译器创建的ISPAC文件有关。使用VS(使用devenv.com theproject.dtproj -build
)再次构建项目,为我解决了这个问题,并允许以编程方式部署项目。