J'ai suivi ce post sur la façon de construire un projet VSIX qui ajoutera des types de projets MVC personnalisés :
http://www.asp.net/mvc/tutorials/mvc-4/custom-mvc-templates
Je veux également inclure quelques paquets Nuget supplémentaires, et je suivais donc les instructions suivantes cette page de Nuget mais il semble que ce soit pour VS2010 et je travaille en 2012.
J'ai construit le projet, et tout fonctionne bien sur ma machine. L'installation fonctionne, le nouveau type de projet apparaît, et lorsque je crée un nouveau projet de ce type, tout fonctionne parfaitement.
Cependant, lorsque j'envoie l'installateur à un collègue, les choses se cassent. Le programme d'installation fonctionne, le nouveau type de projet apparaît, mais lors de la création du projet, il reçoit des messages d'erreur indiquant qu'il ne peut installer aucun des paquets du nœud d'extension. J'ai confirmé que l'identifiant de produit de l'extension est correct (j'ai intentionnellement malformé l'identifiant dans le fichier .vstemplate pendant le test et cela a donné une erreur totalement différente). J'ai ajouté les paquets au manifeste de l'extension, mais cela ne semble pas faire de différence. J'ai également confirmé que les fichiers .nupkg sont déployés dans %ProgramFiles(x86)%. \Microsoft Visual Studio 11.0 \Common7\IDE\Extensions.
Des suggestions sur ce qu'il faut faire ?
Section .vstemplate du projet personnalisé
<WizardExtension>
<Assembly>NuGet.VisualStudio.Interop, Version=1.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</Assembly>
<FullClassName>NuGet.VisualStudio.TemplateWizard</FullClassName>
</WizardExtension>
<WizardData>
<packages repository="registry" keyName="AspNetMvc4VS11" isPreunzipped="true">
<package id="EntityFramework" version="5.0.0" skipAssemblyReferences="true" />
<package id="jQuery" version="1.8.2" />
<!-- snip -->
</packages>
<packages repository="extension" repositoryId="SampleExtensionId">
<package id="Unity" version="3.0.1304.0" targetFramework="net45" />
<package id="Unity.WebAPI" version="0.10" targetFramework="net45" />
<!-- snip -->
</packages>
</WizardData>
source.extension.vsixmanifest Balises d'actifs
<Assets>
<Asset d:VsixSubPath="ProjectTemplates\CustomMVCTemplate" etc/>
<Asset Type="Unity.3.0.1304.0" Path="Packages\Unity.3.0.1304.0.nupkg" />
<Asset Type="Unity.WebAPI.0.10" Path="Packages\Unity.WebAPI.0.10.nupkg" />
<!-- snip -->
</Assets>
Structure du fichier
- Projet d'extension
- Packages
- Paquet Nuget 1
- Paquet Nuget 2
- etc.
- Modèles de projet
- Modèle de CVC personnalisé
- <fichiers de projet personnalisés>
- Modèle de CVC personnalisé
- source.extension.vsixmanifest
- Packages