重建SSIS项目时,如何更新ScriptTask中的外部DLL版本引用?
解决SSIS ScriptTask引用外部DLL版本更新失败问题
核心原因
SSIS的ScriptTask会将外部库的版本信息嵌入到脚本项目的配置和编译后的代码中,单纯更新GAC版本并重建项目无法自动同步这些内嵌的版本引用。
分步解决方案
1. 逐个更新ScriptTask内的引用
- 打开每个报错的ScriptTask,进入脚本编辑界面
- 在脚本项目的引用节点下,找到旧版本(1.0.0.0)的外部库,右键选择移除
- 右键点击引用 -> 添加引用,切换到程序集 -> 全局程序集缓存,选中2.0.0.0版本的目标库,完成添加
- 保存脚本并关闭编辑窗口,确保当前包的变更被保存
2. 检查代码中的版本绑定
- 打开脚本代码文件,确认没有硬编码的版本绑定逻辑:
- 移除类似
extern alias OldVersion这类指定旧版本的声明 - 若代码中存在强名称绑定的注释或代码,更新为2.0.0.0版本
- 移除类似
3. 彻底清理并重建项目
- 在Visual Studio中,执行生成 -> 清理解决方案
- 手动删除项目根目录下的
bin、obj文件夹,以及每个dtsx包对应的临时脚本编译目录 - 重新执行生成 -> 生成解决方案,确保所有包和脚本都重新编译
4. 验证GAC库状态
- 以管理员身份打开命令提示符,运行
gacutil /l [你的库的完整名称],确认仅存在2.0.0.0版本 - 若仍有旧版本残留,执行
gacutil /u "库名称, Version=1.0.0.0, Culture=neutral, PublicKeyToken=你的公钥令牌"彻底移除旧版本
5. 检查包配置文件(如有)
- 若项目使用了包配置文件(.dtsConfig),打开文件检查是否存在硬编码的旧版本库路径或版本号,如有则替换为2.0.0.0版本的对应信息
内容的提问来源于stack exchange,提问作者SupportSimone
相关产品推荐
相关产品推荐

