如何使用连接在VsixMainfest项目模板向导组件?(How to use wizard ass

2019-09-19 20:30发布

我有了一个组件属性的vsixmanifest文件。 该文件是这样的:

<Content>
<ProjectTemplate>Solution</ProjectTemplate>
<Assembly AssemblyName="SolutionNameWizard, Version=1.0.0.0, Culture=neutral, PublicKeyToken=1c39bfcc-223f-4c12-a5dc-55eeca7c61f7">
    Assemblies\SolutionNameWizard.dll
</Assembly>

我知道,程序集的名称和公钥是正确的。

现在,我想在我的模板来使用这个组件。 现在,我有:

<WizardExtension>
      <Assembly>SolutionNameWizard, Version=1.0.0.0, Culture=neutral, PublicKeyToken=1c39bfcc-223f-4c12-a5dc-55eeca7c61f7</Assembly>
      <FullClassName>SolutionNameWizard.IWizardImplementation</FullClassName>
</WizardExtension>

有没有办法,我失去了一些东西? 当我运行VSIX我得到以下错误:

A problem was encountered creating the sub project 'test.Web' Error: this template
attemtped to load component assembly 'SolutionNameWizard, Version=1.0.0.0, Culture=neutral, PublicKeyToken=1c39bfcc-223f-4c12-a5dc-55eeca7c61f7'.

我知道,模板需要大会在GAC中,是同样的情况,当我使用VSIX? 我希望避免海关总署,还是用我的向导。

编辑:我改变了公共密钥到适当的字符串作为答案的建议,但我仍然有问题。

编辑2:除了下面的有用的答案,这里是我写了之后我完成这个过程了博客。 它链接到一堆文章,我认为是非常有帮助的: https://thebhwgroup.com/blog/2013/10/visual-studio-templates

Answer 1:

如果通过你的VSIX所提供的组件,它并不需要在GAC中。

你的公钥是绝对正确的。 您正在使用一个GUID时,它应该是一个16个字符的十六进制字符串(8个字节)。 请看下面的例子:

MyAssembly程序,版本= 11.0.0.0,文化=中立,公钥= b03f5f7f11d50a3a

您可以通过运行您的程序集的公钥值sn.exe -T MyAssembly.dll从VS命令提示符。



Answer 2:

如果任何事情发生在这个问题上跌倒,我结束了本指南如下: http://blog.tonysneed.com/2011/09/14/build-a-multi-project-visual-studio-template/

它制造的过程(主要是)很容易。 如果有人碰巧遇到了类似的问题,请随时与我联系,我可以尝试和大家分享我的经验教训。

编辑:这里是短暂的博客文章中,我完成这个过程后写道。 在这个谁绊倒这可能是有人帮助: http://www.thebhwgroup.com/blog/2013/10/visual-studio-templates/



文章来源: How to use wizard assemblies attached in VsixMainfest in project templates?