This article describes how to use visual c#.net to create a DTS customization task. You can extend DTS functionality in a way that c#.net create custom tasks. You can then install and register the task, and he speaks the DTS design which is now, like the default DTS task. In short, you can use the. NET framework to create a custom task.
In addition to creating a DTS Customization task in this article, there are some things to include:
1, the custom code in this article is divided into compiling, registering and installing custom tasks;
2, this part of a distinctive part is that you can run a custom task;
3, in the development process you can use some of the tools mentioned in this article (unless otherwise noted, these tools are already included in the. NET, you can pass. NET to run these tools on the command line.
Create a timely package for DTSSpkg.dll
If one is based on Microsoft. NET client to access a COM component, you must use a package (which the component contains). This kind of package is a just-in-time running package (RCW) and you can also compile it through an open Dtspkg.dll type library. You can also compile the RCW using the Type Library Export tool (Tlbimp.exe), such as:
Tlbimp.exe "C:\ProgramFiles\Microsoft Sqlserver\80\tools\binn\dtspkg.dll"/out:microsoft.sqlservver.dtspkg80.dll/ Keyfile:DTSPkg.snk
The "/keyfile" parameter represents Microsoft.SQLServer.DTSPkg80.dll with a strong type name with public or private keywords. Use the strongly typed name tool (Sn.exe) to create a keyword before dtspkg.snk:
Sn.exe–k DTSPkg.snk
You should use a strongly typed name like the other global collection cache because you installed the run package.
Installing the run package in the Global collection cache
To install the run package with the Global Collection Cache tool (GaCutil.exe):
gacutil.exe /I Microsoft.SQLServer.DTSPkg80.dll
After installing the run package, you can add it like. Netc# the same additions as references in the project.
Add code for a custom task
Custom registration for code. NET does not open Dllreginsterserver and dllunregisterserver like COM components, but you can use the ComRegisterFunctionAttribute class to perform task registration and unregister. Add the following code before customizing the class declaration:
[Guid("A39847F3-5845-4459-A25E-DE73A8E3CD48"), ComVisible(true)]
[ProgId("DTS.SimpleTask")]
public class SimpleTask : CustomTask
{
//implementation of custom task
}
The following code is an example of a function registration execution. The entire code of the function is in the compilation, registration, and Installation section of the custom task.
[System.Runtime.InteropServices.ComRegisterFunctionAttribute()]
static void RegisterServer(Type t)
{
//code to register custom task
}
The registration function adds the following key value for registration.
Hkey_classes_root\clsid\a39847f3-5845-4459-a25e-de73a8e3cd48\implemented categories\{10020200- EB1C-11CF-AE6E-00AA004A34D5}
10020200-EB1C-11CF-AE6E-00AA004A34D5 is the class number of the DTS package object. Because all custom tasks perform custom interfaces, they must be registered. The registration function adds the following registry key value:
HKEY_CURRENT_USER\Software\Microsoft\Microsoft SQL server\80\dts\enumeration\tasks\ A39847f3-5845-4459-a25e-de73a8e3cd48
The following DTS task caches a list of directories so that customized tasks appear in DTS Designer:
HKEY_CURRENT_USER\Software\Microsoft\Microsoft SQL server\80\dts\enumeration\tasks\