具有IWizard的Visual Studio自定义项目模板

时间:2019-03-27 10:17:13

标签: .net visual-studio

我想用向导创建一个自定义项目模板。 作为想法,我在VS中使用了MVC模板。首先,创建了一个多项目模板,并将所有文件打包在一个My.vstemplate文件的zip文件中

...
<TemplateContent>
    <ProjectCollection>
        <ProjectTemplateLink ProjectName="$safeprojectname$.DataAccess">
            DataAccess\MyTemplate.vstemplate
        </ProjectTemplateLink>
        <ProjectTemplateLink ProjectName="$safeprojectname$.Logic">
            Logic\MyTemplate.vstemplate
        </ProjectTemplateLink>
        <ProjectTemplateLink ProjectName="$safeprojectname$.Types">
            Types\MyTemplate.vstemplate
        </ProjectTemplateLink>
    </ProjectCollection>
</TemplateContent>
<WizardExtension>
    <Assembly>MyProjectWizard, Version=1.0.0.0, Culture=Neutral, PublicKeyToken=null</Assembly>
    <FullClassName>MyProjectWizard.WizardImplementation</FullClassName>
</WizardExtension>

在向导中,我想为我的项目配置选择相同的类型,例如“空”或“满”等。

我不知道该怎么办才能从创建的解决方案中“删除”不需要的项目,或者如何在RunStarted方法中替换模板的配置。

public bool ShouldAddProjectItem(string filePath){...}

仅适用于项目模板。

1 个答案:

答案 0 :(得分:0)

好的,我找到了解决方案。如果需要Xamarin或ASP项目模板之类的东西,用户可以在其中选择项目类型和配置,则需要为IWizard界面创建更多实现。

  1. 首先用于项目(根向导)。它将与.vstemplate文件中的一样。在这里,您可以为取消,返回按钮或项目名称编写逻辑。
  2. 子项目的第二个向导(subProject.vstemplate)。在这里,您可以从某些存储(db,file ..)中声明新变量,例如NuGet版本,并检查是否应为此配置创建此项目或引发取消异常。