远程执行SQL Server 2019上的SSIS包报错求助
检查并更新.NET项目的程序集引用
确认你的.NET 4.5项目中引用的是SQL Server 2019对应的DTS程序集(版本号为15.0.0.0),而非旧的11.0版本。这些程序集通常位于路径C:\Program Files (x86)\Microsoft SQL Server\150\SDK\Assemblies下,替换项目中所有11.0版本的DTS相关引用(包括Microsoft.SqlServer.DTSRuntimeWrap、Microsoft.SqlServer.ManagedDTS等)。添加程序集绑定重定向配置
如果项目中存在依赖旧版本程序集的代码或第三方库,在应用的app.config或web.config中添加绑定重定向,将对11.0版本的请求导向15.0版本:<runtime> <assemblyBinding xmlns="urn:schemas-microsoft-com:asm.v1"> <dependentAssembly> <assemblyIdentity name="Microsoft.SqlServer.DTSRuntimeWrap" publicKeyToken="89845dcd8080cc91" culture="neutral" /> <bindingRedirect oldVersion="0.0.0.0-11.0.0.0" newVersion="15.0.0.0" /> </dependentAssembly> <!-- 可按需添加其他DTS相关程序集的重定向,比如Microsoft.SqlServer.ManagedDTS --> </assemblyBinding> </runtime>安装完整的SQL Server 2019客户端组件
仅安装SSDT不足以确保DTS程序集被正确注册。需要在服务器上安装SQL Server 2019安装介质中的客户端工具 SDK组件,该组件会将15.0版本的DTS程序集注册到全局程序集缓存(GAC)中,系统才能正确识别和加载。手动复制dll到旧版本路径无法解决版本匹配和注册问题。匹配应用程序与组件的位数
若你的.NET应用是64位(x64),需确保安装的是64位版本的SQL Server 2019客户端组件;若应用是32位(x86),则对应安装32位组件。程序集的位数必须与应用程序一致,否则会出现找不到文件的错误。验证执行权限与运行环境
如果是通过SQL Server代理执行SSIS包,确保代理服务账户拥有访问GAC中DTS程序集的权限;如果是.NET应用直接调用,确认应用执行账户具备读取相关程序集路径和GAC的权限。
内容的提问来源于stack exchange,提问作者Ratan Servegar

