【问题标题】:C# VSIX-Templates: Trying to use a custom wizard results into an assembly reference errorC# VSIX 模板:尝试使用自定义向导会导致程序集引用错误
【发布时间】:2021-08-17 18:09:17
【问题描述】:

我一直在研究 C# 项和项目模板。

我遵循了 Microsoft 关于如何制作自定义向导的文档,但每当我尝试使用我制作的项目模板时,都会遇到错误。

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

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

有人能帮我弄清楚这是为什么吗?我将包含这些文件,以防有人想自己尝试甚至帮助更正它们。

提前致谢!

【问题讨论】:

    标签: c# templates .net-assembly vsix


    【解决方案1】:

    您的向导程序集不是强命名的。如果你对程序集进行强命名,并在标签中使用程序集的全名,我怀疑这会解决你的问题。

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

    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 中删除相应的包资产时不会出现构建错误。

    【讨论】:

    • 原来顺序也很重要。我必须签署程序集,然后将其添加到清单中,这为我解决了这个问题。另外,我不知道为什么,但直接更改项目文件也是一个因素。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-01-19
    • 1970-01-01
    • 1970-01-01
    • 2023-03-20
    • 1970-01-01
    相关资源
    最近更新 更多