Reputation: 84
I followed a tutorial in a Packt-Publishing Book to create a custom task. The book is about SQL Server 2012 Integration Services. Now I have SQL Server 2016 - maybe this makes a difference.
I was able to write a simple class for a task, that should delay execution for a given period of time.
My class inherits from Microsoft.SqlServer.Dts.Runtime.Task
and overides the methods Execute
, InitializeTask
and Validate
I added the following class-decoration:
[DtsTask
(
DisplayName ="Delay Task",
Description ="Just a test",
IconResource ="Hourglass.ico",
RequiredProductLevel =DTSProductLevel.None,
TaskContact ="DelayTask"
)]
In Project properties I signed the assembly and added the following Post-Build script:
"C:\Program Files (x86)\Microsoft SDKs\Windows\v10.0A\bin\NETFX 4.8 Tools\gacutil.exe" /u "$(TargetName)"
"C:\Program Files (x86)\Microsoft SDKs\Windows\v10.0A\bin\NETFX 4.8 Tools\gacutil.exe" /if "$(TargetPath)"
copy "$(TargetPath)" "C:\Program Files\Microsoft SQL Server\130\DTS\Tasks" /Y
I can Build the Assembly without any issues and can see it in the target folder. Additionally I also copied the assembly in the x86 Program folder.
Unfortunately I cannot see the Task in the SSIS-Toolbox!
How can I deal with that??
Upvotes: 1
Views: 579
Reputation: 31
I still can't see it in toolbox, my class is set to public
[DtsTask(
DisplayName = "Sales Force Import Task",
Description = "Pulls data from Sales Force",
UITypeName = "SForceLibrary.UI.SampleComponentUI, SForceLibrary, Version=1.0.0.0, Culture=neutral, PublicKeyToken=f3a0d54ac94632fc",
TaskType = "ImportTask",
TaskContact = "ImportTask; InvenTrust Properties; Custom Sales Force Task",
RequiredProductLevel = DTSProductLevel.None
)]
public class ImportTask : Task
Upvotes: 0
Reputation: 84
Found the reason after hours of investigation. I simple did not make the class public - blame on me !!! Must be
public class DelayTask : Task {...}
and not
class DelayTask : Task {...}
Upvotes: 1