Official CozyRoc Blog

July 16, 2007

Released CozyRoc SSIS+ 1.1 Beta 3

Filed under: Announcement, SSIS — COZYROC @ 8:21 am

The new release includes CozyRoc Zip Task component for compression and decompression of Zip, GZip, BZip2, Unix, Tar archives. You can download it from here.

If you have an idea for component or feature, you would like see implemented please leave your feedback.

July 5, 2007

Released CozyRoc SSIS+ 1.1 Beta 2

Filed under: Announcement, SSIS — COZYROC @ 8:49 pm

The new release includes CozyRoc Script Task Plus component. The new component allows greater reusability and easier maintenance of script functionality. It has the following features:

  • Authoring of user interface by attributing script code.
  • Script functionality export.
  • Script functionality import or linking to.

You can download it from here. Requires SQL Server 2005 SP2.

July 2, 2007

SSIS project (dtsx) serialization hack

Filed under: SSIS, Tips — COZYROC @ 3:13 pm

If you are interested in SSIS project deserialization, here is a brief summary of the steps you need to follow to install your own deserialization routines (please have Reflector in hand because most of the details below are undocumented):

1. Make sure you have reference to the following libraries:

  • Microsoft.DataTransformationServices.Design.DLL
  • Microsoft.DataWarehouse.VsIntegration.dll
  • Microsoft.DataWarehouse.DLL

3. Install handler for application.Events.SelectionEvents::OnChange event.
4. Check selected item is of type ProjectExt.
5. Install your own ISettingsService service provider class. You can get access to the service container and current ISettingsService service provider with the following code:

Hierarchy projHierarchy = project.GetType().InvokeMember(
   BindingFlags.GetProperty | BindingFlags.NonPublic | BindingFlags.Instance,
   new object[] { } ) as Hierarchy;
IServiceContainer serviceContainer = (IServiceContainer)projHierarchy.GetService(
   typeof( IServiceContainer ) );
ISettingsService ssOld = (ISettingsService)serviceContainer.GetService(
   typeof( ISettingsService ) );

6. Override ISettingsService::GetSetting method and check:

  • settingContext is “Serialization\SerializableComponents”
  • scope is SettingsScope.Machine
  • settingName is “dtsx”

If you have a match, you have to return a type to a dummy class whose only purpose is to provide attributes, used by the infrastructure internally. The default implementation is called PseudoPackage. Attribute your new dummy class with DesignerSerializer attribute and parametrize it with your own serialization class. It has to inherit from DtrDesignerSerializer class.

7. Override DeserializeComponent and SerializeComponent. These are the methods, which will be called for each SSIS project task during serialization. Voila! Now you are the master of the universe.

Blog at