gpt4 book ai didi

sql-server - 程序集重定向不适用于 SSIS 脚本任务

转载 作者:行者123 更新时间:2023-12-04 17:22:05 49 4
gpt4 key购买 nike

我们有一些 SSIS 包需要在多个 SQL Server 版本(2014 和 2016)上运行的要求,而我们不必维护 2 个版本的代码库。

我已经构建了一个包装器 C# 控制台应用程序,它在配置中具有程序集重定向(如下所列),它随后调用 Package.Execute 方法来执行 DTSX 文件。

我收到以下错误,它告诉我正在加载计算机上找到的最新版本的 Microsoft.SqlServer.ScriptTask 程序集。该机器目前有 v12、13 和 14 组件。我需要使用 v13,因为我的目标是 SQL Server 2016。

关于它为什么会这样做以及我如何正确“解决”它的任何想法?

错误:

CS1705 - Assembly 'Microsoft.SqlServer.ScriptTask, Version=14.0.0.0, Culture=neutral, PublicKeyToken=89845dcd8080cc91' uses 'Microsoft.SqlServer.ManagedDTS, Version=14.0.0.0, Culture=neutral, PublicKeyToken=89845dcd8080cc91' which has a higher version than referenced assembly 'Microsoft.SqlServer.ManagedDTS, Version=13.0.0.0, Culture=neutral, PublicKeyToken=89845dcd8080cc91'

控制台应用程序配置中的重定向:

<runtime>
<assemblyBinding xmlns="urn:schemas-microsoft-com:asm.v1">
<dependentAssembly>
<assemblyIdentity name="Microsoft.SqlServer.ScriptTask" publicKeyToken="89845dcd8080cc91" culture="neutral" />
<bindingRedirect oldVersion="10.0.0.0-14.0.0.0" newVersion="13.0.0.0" />
</dependentAssembly>
<dependentAssembly>
<assemblyIdentity name="Microsoft.SqlServer.ManagedDTS" publicKeyToken="89845dcd8080cc91" culture="neutral" />
<bindingRedirect oldVersion="10.0.0.0-14.0.0.0" newVersion="13.0.0.0" />
</dependentAssembly>
<dependentAssembly>
<assemblyIdentity name="Microsoft.SqlServer.DTSRuntimeWrap" publicKeyToken="89845dcd8080cc91" culture="neutral" />
<bindingRedirect oldVersion="10.0.0.0-14.0.0.0" newVersion="13.0.0.0" />
</dependentAssembly>
<dependentAssembly>
<assemblyIdentity name="Microsoft.SqlServer.DTSPipelineWrap" publicKeyToken="89845dcd8080cc91" culture="neutral" />
<bindingRedirect oldVersion="10.0.0.0-14.0.0.0" newVersion="13.0.0.0" />
</dependentAssembly>
<dependentAssembly>
<assemblyIdentity name="Microsoft.SqlServer.PipelineHost" publicKeyToken="89845dcd8080cc91" culture="neutral" />
<bindingRedirect oldVersion="10.0.0.0-14.0.0.0" newVersion="13.0.0.0" />
</dependentAssembly>
</assemblyBinding> </runtime>

最佳答案

您不能使为特定 SQL Server 版本设计的包使用不同版本的 DLL 运行。此外,当软件包升级到更高版本时。你不能在较低版本中执行它。

程序集绑定(bind)重定向不是针对类似情况而设计的。因为版本之间的类和对象不同。

关于sql-server - 程序集重定向不适用于 SSIS 脚本任务,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47391220/

49 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com