如何在VS 2013中的VSIX模板项目中正确嵌入自定义向导程序集?

时间:2014-03-10 16:26:30

标签: visual-studio-2013 vsix

我正在Visual Studio 2013中构建一个多项目模板,其中包含几个项目模板,一个主项目和一个单元测试项目。我创建了一个自定义模板向导,带有IWizard的简单非UI实现,我需要帮助我在单元测试项目中引用。这一切都可以在我的PC上运行,但我很难让VSIX在其他PC上正确部署该自定义向导程序集。扩展本身安装正常,但在创建我的新项目时,它爆炸告诉我它找不到我的自定义模板向导程序集。

我可以从Fusion日志查看器中查看它在C:\ Program Files(x86)\ Visual Studio 12.0 \ Common7 \ IDE文件夹中的各种子文件夹(PrivateAssemblies,PublicAssemblies,CommonExtensions)。我需要让DLL进入其中一个文件夹。我在这里看到有关ProvideBindingPath属性的内容,但到目前为止我还没有运气。

我已经在SO上尝试了很多建议,但大多数(如果不是全部)都引用了VS2010(在这方面不同)。

感谢任何帮助!

1 个答案:

答案 0 :(得分:6)

我找到了解决方案。在VSIX清单设计器的Assets部分中,您可以在其中添加自定义模板向导程序集,底部有一个框,显示“嵌入此文件夹:”。如果您在其中输入值 ProjectTemplates ,它将起作用。

安装VSIX扩展时实际发生的是它将程序集(DLL)解压缩到/Common7/IDE/Extensions/{random letters denoting unzipped extension}/ProjectTemplates文件夹。显然这种结构是预期的。

我真的希望这有助于某人。自VS 2010以来,这个过程似乎发生了变化,而较新的VS 2012/2013文档有点弱。

附带截图。

Screen capture of VSIX manifest asset editor