Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Deploy assembly containing IWizard for project template with VSIX

I have created an extension for VS 2010 that deploys a project template. The project template uses a custom wizard (in a specific assembly) that is called when I create a new project based on this template.

I want to package the assembly containing the wizard within the VSIX, so that it gets deployed somewhere the template can find it (I know GAC is not an option with VSIX).

Basically if I deploy the assembly to the GAC, install the VSIX and then create the project the wizard is invoked successfully. If I do the same without deploying the assembly first, the project templates does not find the assembly when I create the project.

My question is: how to deploy a project template and the assembly it needs using a VSIX package?

Thank you for your help

EDIT: I changed the VSIX Sub Path of the wizard assembly reference to "ProjectTemplates" in both the installer project and updated the vsixmanifest content assembly reference accordingly. It seems to work now.

like image 995
Johann Blais Avatar asked Feb 23 '11 11:02

Johann Blais


1 Answers

You don't need to get your assembly containing the IWizard implementation in the GAC. You can simply declare it in your extension.vsixmanifest file as an Assembly element in the Content section.

Unfortunately, this doesn't appear to be documented well anywhere.

The only tricky part is making sure that the AssemblyName attribute has the correct value.

like image 183
Aaron Marten Avatar answered Oct 15 '22 13:10

Aaron Marten