Creating a Delivery Extension Library
Each Reporting Services delivery extension you create should be assigned to a unique namespace and built into a library or assembly file. The exact name of the namespace is not important, but it must be unique and not shared with any other extension. You should create your own unique namespaces for your company's delivery extensions.
The following example shows the code to begin a Reporting Services delivery extension, which uses the namespaces that contain the delivery interfaces and any utility classes.
When compiling a Reporting Services delivery extension, you must supply to the compiler a reference to Microsoft.ReportingServices.Interfaces.dll, because the delivery extension interfaces and classes are contained there. The Microsoft.ReportingServices.Interfaces namespace is needed to implement the IExtension interface, the IDeliveryExtension interface, and more. For example, if all the files containing the code to implement a Reporting Services delivery extension written in C# were in a single directory with the extension .cs, the following command would be issued from that directory to compile the files stored in CompanyName.ExtensionName.dll.
csc /t:library /out:CompanyName.ExtensionName.dll *.cs /r:System.dll /r:Microsoft.ReportingServices.Interfaces.dll
The following code example shows the command that would be used for Microsoft Visual Basic files with the extension .vb.
vbc /t:library /out:CompanyName.ExtensionName.dll *.vb /r:System.dll /r:Microsoft.ReportingServices.Interfaces.dll
You can also design, develop, and build your delivery extension using Visual Studio. For more information about developing assemblies in Visual Studio, see your Visual Studio documentation.