1

我有一個具有程序集屬性的vsixmanifest文件。該文件看起來像:如何在項目模板中使用VsixMainfest中附帶的嚮導程序集?

<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?我希望避免GAC並仍然使用我的嚮導。

編輯:我按照答案中的建議將公鑰改爲正確的字符串,但我仍然有問題。

編輯2:除了下面的有用答案之外,這裏是我完成這個過程後寫的博客。它鏈接到一堆我發現非常有用的文章:https://thebhwgroup.com/blog/2013/10/visual-studio-templates

回答

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/

3

如果您的程序集是通過VSIX提供的,則不需要在GAC中。

Your PublicKeyToken絕對是而不是正確。當它應該是16個字符的十六進制字符串(8字節)時,您使用的是Guid。請看下面的例子:

MyAssembly程序,版本= 11.0.0.0,文化=中性公鑰= b03f5f7f11d50a3a

您可以通過從VS命令提示符下運行sn.exe -T MyAssembly.dll找到適合您的程序集的公鑰值。

+0

感謝您的答覆和指出這個問題。我糾正了兩個地方的publickeytoken,但我仍然有同樣的問題。你碰巧看到其他可能不正確的東西嗎? – PFranchise 2012-07-19 21:11:23