繁体   English   中英

VSIX Visual Studio 扩展项目模板创建

[英]VSIX Visual studio extension project template Creation

我有一个 VSIX Visual Studio 2019 扩展,它应该向 Visual Studio 添加一个项目模板。 为此,我使用了 FlavouredProjectBase 和 FlavouredProjectFactory。 类看起来像这样:

项目类别:

class LugiaUIProject : FlavoredProjectBase
{

    public LugiaUIProject(IServiceProvider site)
    {

    }
}

工厂等级:

[Guid(LugiaUIProjectPackage.LugiaUIProjectFactoryString)]
internal class LugiaUIProjectFactory : FlavoredProjectFactory
{
    private LugiaUIProjectPackage lugiaUIProjectPackage;

    public LugiaUIProjectFactory(LugiaUIProjectPackage pkg)
    {
        lugiaUIProjectPackage = pkg;
    }

    protected override object PreCreateForOuter(object outerProject)
    {
        return new LugiaUIProject();
    }

    protected override void CreateProject(string fileName, string location, string name, uint flags, ref System.Guid projectGuid, out System.IntPtr project, out int canceled)
    {
        //??
    }
}

该项目的注册似乎工作正常,因为模板在创建新项目时显示在模板列表中: 在此处输入图片说明

但我无法让项目的创建工作。 当我选择模板时,它只会引发错误。 如果CreateProject覆盖中有断点,则会命中,但不会生成项目。 不幸的是,我没有找到任何关于“FlavouredProject”创建的资源/文档。 谁能向我解释缺少什么/我在这里做错了什么? 或者这个“FlavouredProject”方法被弃用了?

您遇到此错误的原因是您的项目模板缺少一些内容。 即项目文件(.csproj 或类似文件)以及 .vstemplate。

这里要考虑一件事; 是您希望您可能希望使用安装自定义项目风格的相同 .VSIX 部署您的项目模板。 所以你应该考虑创建一个实际的项目模板项目。 然后使用 Project to Project 引用从 VSIX 项目中引用该项目,并将其作为资产包含在 .vsixmanifest 中。

使用项目模板向导创建初始项目模板,将确保您获得项目文件以及 .vsixmanifest。 虽然您需要修改 .csproj 以使用您的项目风格。 也就是说,您需要确保将项目风格的 guid 添加到 .csproj 文件中的标记中。 否则,该项目仍将是基于 C# 的库存项目。 :-)

几年前我发布了一个 有点过时的自定义项目类型示例,它实现了自定义项目类型(不是项目风格),但它还包含一个项目和项目模板,类似于您正在尝试执行的操作。 虽然它是为 VS 的早期版本编写的,但可能仍然可以作为一个可行的示例 /wrt 实现项目模板以配合您的自定义项目风格。

同样值得一读:

真挚地,

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM