So I found out that you can't debug Script Components, you can Script Tasks but not components. I thought this was going to be a pain, but its not really. So what do you do?
Well you need to trace. The difference between DTS and SSIS is that the logging architecture of SSIS is v powerful. You no longer have to put in msgboxes to get information.
Your Script Componet inherits from ScriptComponent which has the Log method, this allows you to return a message to the Package log. This occurs as the event ScriptComponentLogEntry.
(vb code)
Dim
x(0) As Byte
Me.Log("Hello", 0, x)
To capture this event you need to enable the event for logging, this needs to be done in the SSIS Logging settings. Ensure that your Task has a tick next to it so that you can configure event logging for the task (i.e. is not inheriting the settings from the package). Now when you click on Details you can see a row for the ScriptComponentLogEntry, to capture the event put a tick in the box.
Its a bit annoying that you have to configure the logging for the Task and not have it inherit from the package, is there another way.
Yes you can use one of the events that is configurable at the package level, i.e. Information, Progress, Warning, Error.
Me
.ComponentMetaData.FireInformation(0, "Simons Task", "Some message to return", "", 0, True)
So once you have enable the logging on OnInformation event at the package level this message will be captured.
To easily see these events at runtime, you can display Log Events windows (SSIS menu, LogEvents option)
You can still use msgboxes to act as break points.