我一直在关注这篇关于如何构建将添加一些自定义 MVC 项目类型的 VSIX 项目的帖子:
http://www.asp.net/mvc/tutorials/mvc-4/custom-mvc-templates
我还想包括一些额外的 Nuget 包,所以我从 Nuget 关注这个页面,但它似乎是针对 VS2010 的,我在 2012 年工作。
我有项目建设,一切都在我的机器上运行良好。安装成功,出现新的项目类型,当我创建这种类型的新项目时,一切正常。
但是,当我将安装程序发送给同事时,事情就中断了。安装程序工作,他们看到新的项目类型,但在创建项目时,他收到有关无法在扩展节点中安装任何包的错误消息。我已经确认扩展的产品 ID 是正确的(我在测试期间故意在 .vstemplate 文件中将其格式错误,它给出了一个完全不同的错误)。我已将包添加到扩展清单中,但似乎没有什么不同。我还确认 .nupkg 文件已部署到 %ProgramFiles(x86)%\Microsoft Visual Studio 11.0\Common7\IDE\Extensions。
关于做什么的任何建议?
自定义项目的 .vstemplate 部分
<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 资产标签
<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>
文件结构
- 扩展项目
- 套餐
- Nuget包 1
- NugetPackage 2
- ETC
- 项目模板
- 自定义MVC模板
- <自定义项目文件>
- 自定义MVC模板
- source.extension.vsixmanifest
- 套餐