我需要生成自定义项目模板。我正在向用户展示向导(使用 vsix 项目),该向导具有三个复选框,用户可以在其中选择一个或多个复选框,根据需要创建的项目数量的选择。
假设用户选择一个,那么输出解决方案必须有一个项目。假设用户选择任意两个,那么输出解决方案必须有这两个项目。
目前,无论选择如何,都会创建三个输出项目。根 vsTemplate 文件如下所示,有没有办法满足我的要求?
<ProjectCollection>
<ProjectTemplateLink ProjectName="Cat">
CatProject\Cat.vstemplate
</ProjectTemplateLink>
<ProjectTemplateLink ProjectName="Dog">
DogProject\Dog.vstemplate
</ProjectTemplateLink>
<ProjectTemplateLink ProjectName="Lion">
LionProject\Lion.vstemplate
</ProjectTemplateLink>
</ProjectCollection>
我尝试了两种方法 1)在运行时相应地更改根 vsTemplate 文件,但始终根据 bin 目录中 zip 文件夹中的 vsTemplate 文件创建输出项目。2)使用开发工具环境自动化对象,在IWizard接口的ProjectItemFinished方法中以编程方式添加或删除项目,例如:Dte.Solution.AddFromTemplate(vsTemplatePath, NewProjectName) 上面一行创建了一个新项目但缺少文件夹结构,很难调整它。
有什么简单的方法可以做到这一点吗?
<ProjectCollection>
if(cat is selected)
<ProjectTemplateLink ProjectName="Cat">
CatProject\Cat.vstemplate
</ProjectTemplateLink>
end if
if(Dog is selected)
<ProjectTemplateLink ProjectName="Dog">
DogProject\Dog.vstemplate
</ProjectTemplateLink>
end if
if(Lion is selected)
<ProjectTemplateLink ProjectName="Lion">
LionProject\Lion.vstemplate
</ProjectTemplateLink>
end if
</ProjectCollection>