Writing all adapters and views for add-ins can be a tedious job. I searched the web for a tool that can automate this job, and i found one on codeplex. The project is outdated and can only generate c# code.
I then discovered that some created an updated version and released it on codeplex . This version fixes a lot of bugs but still lacks VB.NET support.
I downloaded the source and changed it so it can generate VB.NET code. You can download Pipelinebuilder vbdotnet here.
- Unzip the files to a location.
- In Visual Studio, goto ‘Tools->Options’. Select Addin/Macro security and add the folder where the unzipped files are.
- Restart Visual Studio.
- Create a new class library project for your contract(s)
- Set the build output path to: ..\output\Contracts\ (Project preferences->Compile)
- Add references to the System.AddIn and System.AddIn.Contract namespace
- Write your contract (sample contract provided below).
- Build the contract class library
- Goto Tools and select ‘Pipeline Builder VB.NET’
- Check all Settings. The pipeline builder will guess your projects. Please make sure everything is valid (otherwise you will get an excpetion). Press ok to generate.
- Create your add-in and the host. Add a refrence to HostView or AddInView, set copy local to false.
- Events are not supported in this version
- Guessing projects will sometimes fail (guesses the wrong project)
Sample contract code:
Imports System.AddIn.Contract Imports System.AddIn.Pipeline <AddInContract()> _ Public Interface IClientAddInContract Inherits IContract Function SayHiToHost(ByVal name As String) As String Sub CallMe(ByVal str As String) Function YetAntoherTest(ByVal test As String) As Boolean Function Another() End Interface
For more information about add-ins visit: http://blogs.infosupport.com/blogs/willemm/archive/2007/11/24/Add_2D00_ins-in-.NET-3.5.aspx and http://www.codeproject.com/KB/dotnet/AddInModel.aspx
More information about the pipelinebuilder can be found at http://blogs.msdn.com/clraddins/ or http://pipelinebuilder.codeplex.com/
If you find bugs or need more information please enter a comment.