带有脚本组件的程序包在SSDT(Visual Studio 2017)上运行良好,将其部署到SQL Server 2016时不会运行。它将引发ComponentVersionMismatchException。
因此,其他软件包也可以正常工作。这是一个带有脚本组件目标的数据流。当我刚开始开发该项目时,我没有将目标从SQL 2017调整为SQL2016。我开发了所有内容,并使其从SSDT运行。我正在使用.ispac文件进行部署。部署后,它将引发ComponentVersionMismatchException。这是我尝试让脚本组件运行的内容:
我希望针对SQL 2016的全新项目具有不执行任何操作的脚本组件,应该能够在服务器上执行。我现在很失落。
答案 0 :(得分:1)
尝试直接从Visual Studio部署而不是使用ispac。 它可能类似于: https://feedback.azure.com/forums/908035-sql-server/suggestions/32898370-deploying-single-ssis-package-to-sql-2016-from-ssd
答案 1 :(得分:0)
SSIS Integration Services项目不向后兼容,因此,如果部署在VS 2017中编写的包,则需要将目标从SQL 2017调整到SQL 2016。
答案 2 :(得分:0)
我完全同意@Larnu的评论,该问题不仅与目标服务器版本有关。即使您选择SQL Server 2016作为目标服务器,脚本组件也是使用4.6的较新版本(即related to Visual Studio 2015/SQL Server 2016)创建的。您可以通过在部署服务器上安装相同版本的.Net Framework来解决此问题。
答案 3 :(得分:0)
鉴于Piotr所说的,并且我已经更新到VS2017的最新版本的VS Shell / SSDT,我尝试安装VS2015的SQL Server数据工具。
Visual Studio 2015能够直接部署到(本地)服务器,并且从VS2015版本部署的程序包不会表现出从VS2017的程序包执行的问题。
鉴于VS2019的SSDT已发布,将来可能值得尝试该版本。
对于VS2017,这似乎是SSDT中仍未修复的错误。