首页 > 解决方案 > 有没有办法一次更新所有脚本任务的 .net 框架版本?

问题描述

我需要更新脚本任务以对多个包使用 4.6 框架版本。有没有办法一次升级框架版本而不是去每个脚本任务并一个一个更新?

标签: sql-serverssissql-server-data-tools.net-framework-versionbids

解决方案


不,没有魔术按钮可以更改现有脚本的定义。

您可以想象编写一个自定义 .NET 应用程序来模拟打开脚本任务/组件的行为,这当然会产生一个 VS 实例来编辑脚本,然后将其更新TargetFrameworkVersion到 4.6,保存更新的项目,将其序列化回 SSIS对象模型并保存生成的包。这与手动修复所有包的蛮力相比的复杂性将严重影响手动工作。未来的读者,请在这里证明我错了,因为我认为这是一个巧妙的技巧。

展望未来,您可以更改新脚本组件/任务的定义以使用 Framework 4.6(或 4.7、4.8)。在我关于Slimming down the Script Task 的帖子中,我们可以看到文件系统上的某处是 VSTA??_IS_ST_CS_Template.vstax(其中 ?? 是两位数)。对于我的盒子,VS 2017,SSDT 15,我有VSTA14_IS_ST_CS_Template.vstax.

如果我

  • 解压那个,
  • 编辑第 14 行IS%20Script%20Task%20Project.csprojto go from <TargetFrameworkVersion>v4.5</TargetFrameworkVersion>to<TargetFrameworkVersion>v4.6</TargetFrameworkVersion>
  • 保存
  • 将所有内容压缩为 VSTA14_IS_ST_CS_Template.vstax
  • 用我们修改的文件替换原来的 vstax 文件

创建一个新的脚本任务将针对 4.6 框架。将 vstax 文件应用到您的所有同事。


推荐阅读