Thomas Lucas
Thomas Lucas

Reputation: 84

Custom Task not visible in SSIS Toolbox

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

Answers (2)

Chirag Shah
Chirag Shah

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

Thomas Lucas
Thomas Lucas

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

Related Questions