Making your Existing Custom SSIS Extensions and Applications Work in Denali
Published Mar 25 2019 03:16 PM 1,437 Views
Not applicable
First published on MSDN on Aug 09, 2011

Today’s post is from Rujin Cao – a developer on the SSIS team based in Shanghai. This article talks about the .NET assembly binding we include in our .exes by default, which makes migrating custom SSIS code to Denali a lot easier. Note that while this is a good work around, recompiling your code to target the Denali versions of the SSIS assemblies is still recommended.

Upgrading custom extensions and applications which used the SSIS object model from 2005 to 2008 required some code changes . One of the goals in SQL Server “Denali” was to make this process easier. In general, most .NET custom extensions (i.e. ones that use the ManagedDTS API ) will not need to be recompiled or require code changes, and most custom applications will just need to update their .exe.config file.

Custom SSIS Extensions

For custom SSIS extensions, we added four binding redirection rules in the *.exe.config of DTExec.exe, DTExecUI, dtshost.exe, DTSWizard.exe and DTUtil.exe to help redirect the runtime assemblies from version 10.0.0.0(in SQL Server 2008(R2)) to version 11.0.0.0(SQL Server “Denali”). Here it is (you can also see it in“%ProgramFiles%\Microsoft SQL Server\110\DTS\Binn\DTExec.exe.config” after installing Denali):

  1. <assemblyBinding xmlns="urn:schemas-microsoft-com:asm.v1">
  2. <dependentAssembly>
  3. <assemblyIdentity name="Microsoft.SqlServer.ManagedDTS" publicKeyToken="89845dcd8080cc91" culture="neutral" />
  4. <bindingRedirect oldVersion="10.0.0.0" newVersion="11.0.0.0"/>
  5. </dependentAssembly>
  6. </assemblyBinding>
  7. <assemblyBinding xmlns="urn:schemas-microsoft-com:asm.v1">
  8. <dependentAssembly>
  9. <assemblyIdentity name="Microsoft.SqlServer.DTSRuntimeWrap" publicKeyToken="89845dcd8080cc91" culture="neutral" />
  10. <bindingRedirect oldVersion="10.0.0.0" newVersion="11.0.0.0"/>
  11. </dependentAssembly>
  12. </assemblyBinding>
  13. <assemblyBinding xmlns="urn:schemas-microsoft-com:asm.v1">
  14. <dependentAssembly>
  15. <assemblyIdentity name="Microsoft.SqlServer.DTSPipelineWrap" publicKeyToken="89845dcd8080cc91" culture="neutral" />
  16. <bindingRedirect oldVersion="10.0.0.0" newVersion="11.0.0.0"/>
  17. </dependentAssembly>
  18. </assemblyBinding>
  19. <assemblyBinding xmlns="urn:schemas-microsoft-com:asm.v1">
  20. <dependentAssembly>
  21. <assemblyIdentity name="Microsoft.SqlServer.PipelineHost" publicKeyToken="89845dcd8080cc91" culture="neutral" />
  22. <bindingRedirect oldVersion="10.0.0.0" newVersion="11.0.0.0"/>
  23. </dependentAssembly>
  24. </assemblyBinding>

The four redirected assemblies are:

  1. Microsoft.SqlServer.ManagedDTS
  2. Microsoft.SqlServer.DTSRuntimeWrap
  3. Microsoft.SqlServer.DTSPipelineWrap
  4. Microsoft.SqlServer.PipelineHost

If you are using some other version 10.0.0.0 assemblies (for example, the 9.0.242.0 assemblies from SQL Server 2005), you might have to add more rules in the *.exe.config files to redirect them to the Denali version 11.0.0.0.

Custom SSIS Applications

For the custom SSIS application, the process is much similar. You can create one configuration file (i.e. *.exe.config) for the executable (if it doesn’t have one), and put the above redirect rules into configuration section, more details can be found here .

Version history
Last update:
‎Mar 25 2019 03:16 PM
Updated by: