Home » Microsoft Technologies

Setting project type of project template packaged in vsix

I have been trying to set up project type (and also project subtype) of project template and package it in .VSIX. In particular, problem is setting ProjectType to Web and ProjectSubType to CSharp (as explained on MSDN) which makes 'New Project' not showing my template anywhere. Setting only ProjectType to CSharp works properly. 

Fragment of my 'MyTemplate.vstemplate' looks like this:

<TemplateData><Name>My MVC Web Application</Name><Description>&lt;No description available&gt;</Description><ProjectType>CSharp</ProjectType><ProjectSubType></ProjectSubType><SortOrder>1000</SortOrder><CreateNewFolder>true</CreateNewFolder><DefaultName>MyMVCWebApplication</DefaultName><ProvideDefaultName>true</ProvideDefaultName><LocationField>Enabled</LocationField><EnableLocationBrowseButton>true</EnableLocationBrowseButton><Icon>__TemplateIcon.ico</Icon></TemplateData>

Is there a way to put my project template (packaged in .VSIX) under 'Web' category?


4 Answers Found


Answer 1

It sounds like you might have those backwards; the ProjectType must still be CSharp (it is the ProjectSubType that must be set to Web).

Answer 2

Hi Aleksandarant,

Thanks for your post.

To acheve your goal, I think you can <OutputSubPath> to the project  file,

when you create a C# project template  in file->new->project->C# project template,

unload the project by right click the project node in solution explorer-> unload project,

replace the line

VSTemplateInclude="ProjectTemplate1.vstemplate" />


<VSTemplateInclude="ProjectTemplate1.vstemplate" >



For more information, please check


Hope this can help.


Best Regards,

Ziwei Chen



Answer 3

Hi again,

Is it resolved?



Answer 4

Thanks for your thorough explanation, problem is resolved.



I'm trying to deploy a project template and accompanying template wizard assembly using a VSIX package.  The problem I'm having is that, unless I manually copy the assembly containing the wizard to the GAC or the Visual Studio assemblies directory, the wizard (and template) do not work.

As an example, I have a VSIX project that references both a template wizard and project template by project; here are the relevant lines in source.extension.vsixmanifest:


The same lines in the generated extension.manifest look like this:

<Content><AssemblyAssemblyName="BananasWizard, Version=, Culture=neutral, PublicKeyToken=b06293fe59d1e396">BananasWizard.dll</Assembly><ProjectTemplate>ProjectTemplates</ProjectTemplate></Content>

After the package is installed, the assembly is placed in AppData\Local\Microsoft\VisualStudio\10.0\Extensions\Microsoft\BananasPackage\1.0\; while the .zip file containing the template is in AppData\Local\Microsoft\VisualStudio\10.0\Extensions\Microsoft\BananasPackage\1.0\ProjectTemplates\CSharp\1033.

However, when I try to use the template, Visual Studio displays an error saying that the assembly cannot be found.  If I manually copy the assembly to PublicAssemblies or install it into the GAC then the template works fine.  Surely the manual step shouldn't be required.

Can anyone tell me what I'm doing wrong?  I've uploaded my example solution here: http://www.easy-share.com/1911002100/VsixTemplateTest.zip

I found a post in the Visual Studio RC forums where someone had a similar problem and they resorted to using a pkgdef file, however someone from Microsoft replied saying that the Assembly tag should be enough (without actually describing how to make it work).  I replied to that thread, but suspect I might have more chance of getting an answer here (who'd be reading an RC thread these days?).






I am trying to create a Multi-Project template along with IWizard implementation (IWizard implementation moves few files in the ProjectFinishedGenerating method).

I created a VSIX package which included the assembly which implements the IWizard implementation. When I deploy the extension using VSIX the assembly in question gets placed in the “c:\Users\xxxxxx\AppData\Local\Microsoft\VisualStudio\10.0\Extensions\” .

However when I try to use the project template in Visual Studio 2010, it throws an error saying my assembly is not found.

Is there is way to avoid this problem? (Do I need to create a .pkgdef file? )

Note: If I manually copy the assembly in “C:\Program Files\Microsoft Visual Studio 10.0\Common7\IDE\PublicAssemblies” or put in GAC it works fine.


Win 7, VS 2010 RC, VS 2010 RC SDK, Running as Administrator.
VSTemplate has the required <WizardExtension> node.
VSIX has the <Content> node with my assembly information
[Content_Types].xml has the dll type entry.

Thanks in advance,


I have created several custom package templates, but they are a little cumbersome to use because there is no concept of macro substitutions like you have with a standard visual studio project template.  From what I've researched so far, you can create a project template from visual studio's file menu: File->Export Template.  This in theory this launches the project template wizard.  My only problem is that this menu item appears to be disabled for SSIS projects.  Is it possible to create custom project templates for SSIS?  I'm  using BIDS 2008.

I have various project types that require different sharepoint workspace templates and I'd like to be able to have a drop down selection when I publish a project to select the appropriate template to model the workspace after.  Has anyone done this and if so could you explain how?  I'm not a C# programmer but have done some programming in other languagues so as long as I have some base understanding I could get it done.  Would anyone know if the book VBA Programming for Microsoft Project book would have what I need to accomplish this task?


It *does* show types from other referenced dlls, like NHibernate, but not other referenced projects with the same solution. How can I fix?
My extension consists of a VS Integration Package with a custom editor and several project and item templates (which are all C# - no custom project system is involved). I could not get the VS SDK tools to automatically package the template contents into separate zip files and then into VSIX in Beta 1 or Beta 2. I see there are more properties in the property pages for VSIP project references in the RC, properties like "Template Type", description of which mentions "projects that output templates", and "Valid values: Project or Item". Quick experimentation got me nowhere. There are also MSBuild tasks like "ZipItems", "ZipProjects" etc. defined in Microsoft.VsSDK.targets which seem to operate on "VSTemplate" items, but I don't know how to use them. Is it possible now to create a VSIX extension that contains item and project templates, build process of which packages those automatically?


I have a VSPackages which contains two tool windows and two custom project types.
I am not able to get the project types registered inside VS experimental instance.
The two tool windows are working well but I don't see my project types under Installed Templates when I start debugging.

I have a directory for each project template and the build action for all the files inside the directory is set to 'ZipProject'.

The directory hierachy is like that:

I have tried to follow this tutorial: http://msdn.microsoft.com/en-us/library/cc826178(VS.100).aspx, but it seems to be outdated.

What should I do in other to get my project templates registered as part of my build proccess?



I have created a project to be as a template, for eg it has .js files etc. I have exported this template using Export Template wizard. Once this is done, my custom template will be available in the templates directory.

Now, im adding the template to a setup project through file system. Once this is done my zip file will be available on the installed folder.In the custom actions, i'm exporting the template to the templates directory. Now, when the user installs my setup he will be getting a template in his visual studio under his web.

Now, i need to have context menu specific only to the template. For eg.. When the user right clicks on his new project created out of the template he should see something called "Add Project Files to FTP".

I have created this using Visual Studio Package and i'm validating to visible the command only when it the project template has a file extension manifest.xml. This works fine

But the problem is, the menu command is visible for other projects also. Any helps ??





Trying to download & install the 2010 Pro Power Tools but keep getting the following errro:

The extension could not be installed because the following error occurred:

The file is not a valid VSIX package.

I get this if I try to download it using the Extension Manager within Visual Studio 2010, or if I download it from the link above.

Is this a know problem, or something on my system?



When opening the Silverlight Gadget VSIX file I get the error "This is not a valid VSIX package".

I have VS 2010 and Silverlight 4 installed.

I tried adding new add-in (Visual Studio 10 RC VSIX) to Online gallery and I get an error. Does this work onkly for Beta 1 VSIX packages? When will RC be supported?
Here is the page where I'm trying to upload my add-in: http://visualstudiogallery.msdn.microsoft.com/en-us/site/upload

Hello everybody,

Has anyone successfully localized a VSIX package? It doesn't seem to work for me. It always uses the the strings provided in the vsixmanifest file instead of the strings in the vsixlangpack file. 

I have the following package organization.


|--vsixmanifest file with the locale set to 1028 (Traditional Chinese) 
|--en-US folder
  |--vsixlangpack file containing the localized English strings


I run the package on English US system but it uses the Chinese strings. Am I missing something?

Any help is appreciated.


Microsoft Visual Studio 2010 on Windows7 - VSIX Package
Version 10.0.30319.1 RTMRel
Microsoft .NET Framework
Version 4.0.30319 RTMRel
Installed Version: Ultimate

I've created a package and needed a pie-chart for visualization. So I downloaded the Feb release of WPF  Toolkit. Added references to System.Windows.Controls.DataVisualization.Toolkit and WPFTookit. I've data bound the PieChart to a ViewModel / presenter class.

However when this property is changed, (i.e. items to show in the pie-chart), I get a FileNotFoundException

Could not load file or assembly 'WPFToolkit, PublicKeyToken=31bf3856ad364e35' or one of its dependencies. The system cannot find the file specified.

Snipped Stacktrace

   at System.Reflection.RuntimeAssembly.InternalLoadAssemblyName(AssemblyName assemblyRef, Evidence assemblySecurity, StackCrawlMark& stackMark, Boolean forIntrospection, Boolean suppressSecurityChecks)
   at System.Reflection.Assembly.Load(AssemblyName assemblyRef)
   at System.Windows.Baml2006.Baml2006SchemaContext.ResolveAssembly(BamlAssembly bamlAssembly)
   at System.Windows.Baml2006.Baml2006SchemaContext.ResolveBamlTypeToType(BamlType bamlType)


The FusionLog property shows me that it is looking for this DLL in the wrong place - in the parent folder of devenv.exe


LOG: Using machine configuration file from C:\Windows\Microsoft.NET\Framework\v4.0.30319\config\machine.config.
LOG: Policy not being applied to reference at this time (private, custom, partial, or location-based assembly bind).
LOG: Attempting download of new URL file:///W:/Program Files (x86)/Microsoft Visual Studio 10.0/Common7/IDE/WPFToolkit.DLL.
LOG: Attempting download of new URL file:///W:/Program Files (x86)/Microsoft Visual Studio 10.0/Common7/IDE/WPFToolkit/WPFToolkit.DLL.
LOG: Attempting download of new URL file:///W:/Program Files (x86)/Microsoft Visual Studio 10.0/Common7/IDE/PublicAssemblies/WPFToolkit.DLL.

This dll is referenced by the VSIX Project and is present in the project output folder.

Next step: I tried putting this dll into the GAC and now the assembly load succeeds

c:\Program Files (x86)\WPF Toolkit\v3.5.40619.1>gacutil /i WPFToolkit.dll

Question: Why does this exception occur for only one of the referenced DLL? What is the right fix ? I'm thinking this will cause a problem for deployment via the VS extension manager.. I'd need something like a post-install step, which is something I'd like to avoid (I would like the install to be as smooth as possible).


VSIX packages are a great thing, I love the ease of deployment that they supply. However, there is a BIG feature missing. You can not deploy MSBuild extensions to the well-known MSBuild directory. This is a showstopper for me, and anybody else developing full language/compiler integration packages. The workaround provided by the IronPython integration sample is simply not acceptable. I would love be able to use a VSIX, but for now, I'm stuck with using .msi's. A quick search online shows that I'm not the only one that wants to be able to do this.





Just wondering if the VS team is aware of this scenario and if MSBuild tasks are going to be added to the possible output groups for a VSIX in the near future (SP1 please?), or if I should go ahead and create a Connect enhancement.



Hello everyone,

I have installed Visual C# Express 2010 on one of our dev machines and tried to install .vsix package which is custom tool for some kind of modelling and consist of multiple tool windows.Vsix dialog shows me that package is installed successfully but I am unable to run custom tool window inside VCSExpress.Tool should be runnable from VCSExpress menu bar.

Can anyone tell me what is wrong here and how I can make this tool work on VCSExpress because it is one of my main requirements?

Thank you!




I have written a vsix extension that adds syntax highlighting for a new programming language (based on this Ook! example). My extension works fine when installed into Visual Studio, detecting the file type from its extension and colouring the various keywords.

I am trying to create a Visual Studio Isolated Shell application as an editor for users without VS. As a starting point, I'd just like to set up a standalone app that loads the vsix and acts as a simple editor with syntax highlighting. However, despite trying various things I can't get my isolated shell app to load the vsix extension. What am I doing wrong?

I have added the shell app's name and version to the .vsix's manifest.

This thread suggests that I can simply copy the .vsix into the extensions or extensions/application folder (I've tried both and neither works).

I've also tried the steps given here, which is detailed but complicated. I'm running a 64-bit version of Windows, and I admit I don't understand all the instructions given in that article about 64-bit registry settings.

I feel I'm missing something simple. Any ideas? Is there a tutorial available that explains how to add a vsix to an isolated shell app (I would have thought this was a fairly standard thing to want to do). Or should I share my code between the vsix project and the isolated app in some other way?

Sorry if the answers should be obvious, but this is the first VS extension I've written. I've spent ages trying to work this out, and I can't easily see what's going on under the hood -- I feel there's something simple that I'm missing which will suddenly cause the extension to get loaded.

Many thanks,




Is is possible to specify a timestamp URL and a description URL when signing a VSIX package? So far I could not find how this could be done.

Thank you.


Visual Studio 2005.


if user select different setting in one of the property page , there might be different number of property pages .



Page1 < there is choice 1, choice 2




if user select choice 1 then page2 and page 3 will be visible , if he select choice 2 then page 4 will be visible , is it possible?


I created an F# project template and trying to upload and share it, but I keep getting this error message when I uploaded it on step 2.

No idea on figure out the error.


I'm upgrading my C# VS Package projects from VS2008 to VS2010 on Windows 7 Ultimate. After reading some recommendations, I made a scratch version of a VSPackage project using the VS2010 SDK, then copied the  scratch .csproj file over my existing .csproj file, then added back all the project items and references. The code now compiles correctly, but in the "Post build events" I need to call out to a batch file and pass the path to the steaming fresh binary for postprocessing.

When executing this step, I get an error since $(TargetPath) is expanding to the empty string. So do $(TargetDir) and $(OutDir), but oddly enough not $(SolutionDir). When I went back to my scratch project and echo'ed its $(TargetPath), I got the expected result: the full path to the built binary.

I'm utterly stumped as to why that would be. What part of the build process is clearing the $(TargetPath), and how would I diagnose it? I'm only glancingly familiar with MSBuild and don't quite understand how the new VSIX build steps are affecting my build variables.


<< Previous      Next >>

Microsoft   |   Windows   |   Visual Studio   |   Sharepoint   |   Azure