我一直在關注這個帖子關於如何建立一個VSIX項目,將添加一些自定義的MVC項目類型:VSIX與項目模板和的NuGet軟件包
http://www.asp.net/mvc/tutorials/mvc-4/custom-mvc-templates
我也想加入一些額外的NuGet包,所以我遵循this page from 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>
文件結構
- 個擴建工程
- 包
- NugetPackage 1
- NugetPackage 2
- 等
- ProjectTemplates
- CustomMVCTemplate
- <定製項目文件>
- CustomMVCTemplate
- source.extension.vsixmanifest
- 包
優秀的發現。我也將關鍵段落直接添加到您的答案中。 – Olly