C# VSIX-Templates:尝试使用自定义向导导致程序集引用错误

C# VSIX-Templates: Trying to use a custom wizard results into an assembly reference error

我一直在学习 C# 项和项目模板。

我遵循了 Microsoft 关于如何制作自定义向导的文档,但是每当我尝试使用我制作的项目模板时,我 运行 就会出错。

https://docs.microsoft.com/en-us/visualstudio/extensibility/how-to-use-wizards-with-project-templates?view=vs-2019

当我不在模板的 vstemplate 中引用 WizardExtension 标签时,项目模板有效,但这违背了我使用标签和预写代码向导的全部意义。

谁能帮我弄清楚这是为什么?我会把这些文件包括在内,以防有人想自己尝试,甚至帮助更正它们。

提前致谢!

您的向导程序集没有强名称。如果您对程序集进行强命名,并在您的标记中使用程序集的全名,我想这会解决您的问题。

我写了一篇博客文章,随后被存档,详细说明了如何做到这一点,现在位于:

Creating a VSIX Deployable Project (or Item) Template with Custom Wizard Support

第一次构建签名程序集时,您需要检索它的 PublicTokenKey,以修复 .vstemplate 中的标记。以下文章介绍了如何将自定义工具添加到您的“工具”菜单以轻松检索该标记字符串:

How to: Create a Tool to Get the Public Key of an Assembly

此外,您不需要那个 Package.cs 文件。但是如果你删除它,请确保将项目的“生成 .pkgdef 文件”属性 设置为 false,这样你就不会在尝试生成 .pkgdef 时遇到构建错误,并从你的文件中删除相应的包资产.vsixmanifest.