【问题标题】:SSIS script task errors out when executing from SQL Server Agent Job . System.IO.FileNotFoundException: Could not load file or assembly从 SQL Server Agent Job 执行时,SSIS 脚本任务出错。 System.IO.FileNotFoundException:无法加载文件或程序集
【发布时间】:2021-01-22 05:45:56
【问题描述】:

我在 Windows 2019 虚拟机上安装了 SQL Server 2019。该服务器上安装了 Microsoft Visual Studio Professional 2012。

  • 我在一个项目中有一堆 SSIS 包,其中一些具有用 C# 2012 编写的脚本任务,所有这些包都可以在 Visual Studio 中正常运行。

  • 任何包含脚本任务的包在从 SQL Server 代理作业运行时都会失败,并出现以下错误。

描述:从 XML 加载脚本任务时出现异常:System.IO.FileNotFoundException:无法加载文件或程序集 'Microsoft.VisualStudio.Tools.Applications,版本 = 15.0.0.0,文化 = 中性,PublicKeyToken = xxxxxxxxx ' 或其依赖项之一。该系统找不到指定的文件。 文件名:'Microsoft.VisualStudio.Tools.Applications,版本=15.0.0.0,文化=中性,PublicKeyToken=xxxxxxxxxx' 在 Microsoft.SqlServer.IntegrationServices.VSTA.VstaHelper.b__31_0() 在 Microsoft.SqlServer.VSTAHosting.VSTAScriptingEngine.DisposeVstaHelper() 在 Microsoft.SqlServer.Dts.Tasks.ScriptTask.ScriptTask.MigrateVSTADenaliScriptProject(XmlElement elemProj,IDTSInfoEvents 事件) 在 Microsoft.SqlServer.Dts.Tasks.ScriptTask.ScriptTask.LoadFromXML(XmlElement elemProj,IDTSInfoEvents 事件)

警告:程序集绑定日志记录已关闭。 要启用程序集绑定失败日志记录,请将注册表值 [HKLM\Software\Microsoft\Fusion!EnableLog] (DWORD) 设置为 1。 注意:有一些与程序集绑定失败日志相关的性能损失。 要关闭此功能,请删除注册表值 [HKLM\Software\Microsoft\Fusion!EnableLog]。 结束错误 错误:2021-01-21 20:52:01.92 代码:0x00000003 来源:在 ERP 中创建凭证 说明:脚本任务已损坏。 结束错误 错误:2021-01-21 20:52:01.92 代码:0xC0024107 来源:在 ERP 中创建凭证 描述:任务验证期间出现错误。 结束错误 DTExec:包执行返回 DTSER_FAILURE (1)。 开始时间:晚上 8 点 52 分 01 秒 完成:晚上 8 点 52 分 01 秒 经过:0.5 秒

一些线程谈到将项目属性 Run64bitruntime 更改为 False ,没有用。

一些帖子谈到重新安装 SQL Server 和 Visual Studio,但我真的不想这样做,因为其中许多人谈到重新安装后会弹出很多其他错误。

请提出可以解决此问题的方法。

谢谢

【问题讨论】:

  • 1) 你确定 VS 2012 完全兼容 SQL Server 2019 吗? 2) 你如何部署你的包,部署到哪里?
  • @RogerWolf,你是对的。我安装了 VS2019 Professional ,在 2019 年打开一个新项目,将我所有的 2012 包添加到新项目中,所有这些包都升级了。我确实看到了有关脚本任务需要迁移的警告,但它们都按预期开始工作。 Sql 作业开始执行所有带有/不带有脚本任务的包。谢谢。

标签: sql-server visual-studio ssis sql-agent-job


【解决方案1】:

已翻译 - 找不到“Microsoft.VisualStudio.Tools.Applications”版本 15.0.0.0 的 DLL。

该消息很方便,但它不会告诉您是否缺少 64/32 位 dll。有些人猜测在 32/64 模式之间切换并获得幸运。

检查您的节目和精选以确认 已安装“Microsoft Visual Studion Tools for Application 2017”。

版本 14.0 = VSTA 2015

版本 15.0 = VSTA 2017

版本 16.0 = VSTA 2019

在版本 12 之前,vsta 安装程序应安装 dll 以同时支持 32/64 位。

【讨论】:

  • 我看到 Microsoft Visual Studio Tools for Application 2012 已安装,而不是 2017。因此,如果安装了 2017 版本,这些 2012 软件包将与 2019 sql server 一起使用...?只是古玩。
  • 它应该可以帮助您克服这个特定错误。没有直接试过。通常,当我们 match SSDT to SQL Server Version 时,我们的头痛会减轻。从较新版本的 Visual Studio 开始,并在项目属性中定位(或更低)版本的 SQL Server。但是,如果您访问库 VS 可以访问但不在服务器的全局程序集缓存中,那些缺少的 dll 问题仍然会偶尔出现。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2011-08-12
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2012-12-28
  • 2012-05-28
  • 1970-01-01
相关资源
最近更新 更多