У меня есть требование для создания шаблона пользовательских проектов. Я показываю мастер (используя проект vsix) пользователю, у которого есть три флажка, в которых пользователь может выбрать один или несколько из них, в зависимости от выбора количества проектов, которые необходимо создать.
Предположим, пользователь выберите один, тогда выходное решение должно иметь один проект. Предположим, что пользователь выбирает любые два, тогда выходное решение должно иметь эти два проекта.
В настоящее время, независимо от выбора, создаются три выходных проекта. Файл root 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) Во время выполнения измените файл root vsTemplate соответственно, но всегда Выходной проект создается на основе файла vsTemplate, который уже находится в папке zip в каталоге bin. 2) использование объекта автоматизации среды средства разработки, программное добавление или удаление проектов в методе ProjectItemFinished интерфейса IWizard, пример: 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>