Reputation: 5
I am using Visual Studio 2019 to create a "hello world" custom dataflow transform.
My setup is: Visual Studio 2019 16.4.2 SQL Server data tools 16.0.61912.09160 My local machine is running Microsoft SQL Server 2017 (RTM) - 14.0.1000.169 (X64)
After trying for hours to get my dll to register as a custom dataflow component I created an empty bare-bones custom component that does not do anything making sure that:
With this I:
But still no custom compent in the toolbox.
Anyone have any ideas?
Upvotes: 0
Views: 1511
Reputation: 5256
Starting from SSIS 2014, to support multi-targeting feature of SSDT, custom component developers are required to set an “alias” for each extension. The mapping between the alias and the extension is called “extension mapping”. In %programfiles(x86)%\Microsoft SQL Server\{version}\DTS\UpgradeMappings folder, you can find an “extension extension.xml” file, which contains all extension mapping for all extensions in the product. You also need to add a new extension map file for your extensions. Below is an example of the extension mapping:
<?xml version="1.0" encoding="utf-8"?>
<Extensions xmlns="http://www.microsoft.com/SqlServer/Dts/Extensions.xsd">
<PipelineComponents>
<PipelineComponent Identifier="<your component name from DisplayName property>" Model=".NET">
<CreationName>'your component namespace and class name', 'component assembly name', Version=1.0.0.0, Culture=neutral, PublicKeyToken=...</CreationName>
</PipelineComponent>
</PipelineComponents>
</Extensions>
Sample from a real project
<?xml version="1.0" encoding="utf-8" ?>
<Extensions xmlns="http://www.microsoft.com/SqlServer/Dts/Extensions.xsd">
<PipelineComponents>
<PipelineComponent Identifier="SrcSys Data" Model=".NET">
<CreationName>MyCompany.SrcSys.SrcSysRead, MyCompany.SrcSys.Src.2016, Version=1.0.0.0, Culture=neutral, PublicKeyToken=d934c2f83a6e8e9a</CreationName>
<TypeConverter name="Request Type">MyCompany.SrcSys.Adapt_Const+RequestType, MyCompany.SrcSys.Src.2016, Version=1.0.0.0, Culture=neutral, PublicKeyToken=d934c2f83a6e8e9a</TypeConverter>
</PipelineComponent>
</PipelineComponents>
</Extensions>
Upvotes: 1