I've created a custom component for SSIS by developing a 32bit class library(let's call it CustomComponent.dll). I'm developing in VS2015, targeting SQL Server 2017. This is fine all works as it should, i.e I can see the component in Visual Studio by doing the following steps:
- Copied the CustomComponent.dll to
"C:\Program Files (x86)\Microsoft SQL Server\140\DTS\PipelineComponents"
- Added the class library to the gac using
"C:\Program Files (x86)\Microsoft SDKs\Windows\v10.0A\bin\NETFX 4.6.1 Tools\gacutil.exe" -i CustomComponent.dll
The issue I have is that the custom component now has to be a 64 bit dll as there are references to 3rd party lib's which are 64 bit (these are also added to the gac, the 32 bit versions were also added). I've done the following:
- Removed the previous addition to the gac
"C:\Program Files (x86)\Microsoft SDKs\Windows\v10.0A\bin\NETFX 4.6.1 Tools\gacutil.exe" -u CustomComponent
- Removed the CustomComponent.dll at
"C:\Program Files (x86)\Microsoft SQL Server\140\DTS\PipelineComponents"
- Used the gacutil under the x64 folder
"C:\Program Files (x86)\Microsoft SDKs\Windows\v10.0A\bin\NETFX 4.6.1 Tools\x64\gacutil.exe" -i CustomComponent.dll
- Added the CustomComponent.dll to
"C:\Program Files\Microsoft SQL Server\140\DTS\PipelineComponents"
But I can't see the component in VS.
- The above didn't work. I tried also copying the dll to
"C:\Program Files (x86)\Microsoft SDKs\Windows\v10.0A\bin\NETFX 4.6.1 Tools\gacutil.exe"
still no luck.
Any idea how to make this work to be able to view the component in the 64 bit dll? Perhaps a link that shows a walk through or an approach to try?
This link shows a simple component. But if it were compiled to the equivalent 64bit dll targeting SQL 2017, I have the same problem:
CodePudding user response:
You need to add the 32-bit version since Visual Studio is a 32-bit application.
As I know, GAC support adding both versions and has a separate directory for each one (GAC_64,GAC_MSIL ...). You should add both components and only change the Run64bitRuntime
property to execute the package in 64-bit mode.
If you are executing the package outside of Visual Studio you can refer to the following link for more information: