1

アセンブリ属性を持つ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>

アセンブリ名と公開鍵が正しいことを知っています。

現在、このアセンブリをテンプレートの1つで使用しようとしています。今私は持っています:

<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

4

2 に答える 2

3

アセンブリがVSIXを介して提供されている場合は、GACにある必要はありません。

PublicKeyTokenは間違いなく正しくありません。16文字の16進文字列(8バイト)である必要があるときにGuidを使用しています。次の例を参照してください。

MyAssembly、Version = 11.0.0.0、Culture = neutral、PublicKeyToken = b03f5f7f11d50a3a

sn.exe -T MyAssembly.dllVSコマンドプロンプトから実行すると、アセンブリのPublicKeyToken値を見つけることができます。

于 2012-07-19T21:00:06.013 に答える
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/

于 2012-07-20T18:55:00.827 に答える