A Guidance Package on stereoids

With the upcoming release of GAT for Visual Studio Whidbey RTM we have been working on a few new features, these include:

1. Cascading Menus or nested menus.

2. Custom icons for your recipe or templates commands.

3. New menu aliases for Web projects

4. New templating engine integrated with the VS templating engine.

5. Ability to upgrade a guidance package to a real VSIP package.

In this post I want to talk about number 5.

Using this feature you will be able to upgrade your guidance package a to real VSIP package, your real VSIP could interact with the Recipe manager service and activate recipes at will, also you could expose new services to all Visual Studio and in particular to your actions in recipes. There are a lot of new scenarios opened by this feature.

Ok, great, but how do I use it?

Normally every guidance package load actions or other objects from an assembly named after the name of the guidance package. So to use this feature you only need to create a new class and named it VsPackage. If this class inherits from the VSIP class Package, the GAX will automatically install the VSIP package when you install the guidance package. That’s it.

Here is a sample:

If your guidance package is named “Shadowfax”, then use that name for the assembly and namespace containing the class VsPackage.

namespace Shadowfax

{

[ComVisible(true)]

[Guid("E0E367E3-0F4C-474e-9AB5-0EC94924751C")]

[ProvideAutoLoad(UIContextGuids.NoSolution)]

public class VsPackage : Package

{

protected override void Initialize()

{

base.Initialize();

Trace.TraceInformation("Hello from Shadowfax VSIP Package");

}

}

}

A few details:

1. The guid of the class must match the guid of your guidance package.

2. The class must be com visible.

3. As a real VSIP package, you package won’t load unless you install the VSIP SDK or get a load key from Microsoft.