VSIX Visual Studio扩展项目模板创建

时间:2020-10-23 15:25:58

标签: c# visual-studio visual-studio-2019 visual-studio-extensions vsix

我有一个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)
    {
        //??
    }
}

项目注册似乎工作正常,因为在创建新项目时模板会显示在模板列表中: enter image description here

但是我无法创建项目。当我选择模板时,它只会引发错误。如果CreateProject替代中存在断点,它将被命中,但不会生成项目。不幸的是,我找不到任何有关“ FlavouredProject”创建的资源/文档。谁能向我解释什么缺失/我在做什么错? 还是不推荐使用这种“ FlavouredProject”方法?

1 个答案:

答案 0 :(得分:0)

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

这里要考虑的一件事;是,您可能希望使用安装自定义项目样式的.VSIX部署项目模板。因此,您应该考虑创建一个实际的项目模板项目。然后,将VSIX项目中的该项目与“项目到项目”引用一起引用,并将其作为资产包含在.vsixmanifest中。

使用项目模板向导创建初始项目模板,将确保您获得项目文件以及.vsixmanifest。尽管您将需要修改.csproj才能使用项目样式。即,您需要确保将项目风味的guid添加到.csproj文件中的标签中。否则,该项目仍将只是基于C#的常规项目。 :-)

几年前,我发布了一个somewhat dated custom project type sample,它实现了自定义项目类型(不是项目风格),但其中还包含一个项目和项目模板,与您要尝试的类似。尽管它是为VS的早期版本编写的,但可能仍可以作为/ wrt实施项目模板以配合自定义项目风格的可行示例。

也值得一读:

此致