#.net #visual-studio
#.net #visual-studio
Вопрос:
Я хотел бы создать пользовательский шаблон проекта с помощью мастера. В качестве идеи я взял шаблон MVC в VS. Сначала a создал шаблон для нескольких проектов и упаковал все в zip-файл с моим файлом.vstemplate
...
<TemplateContent>
<ProjectCollection>
<ProjectTemplateLink ProjectName="$safeprojectname$.DataAccess">
DataAccessMyTemplate.vstemplate
</ProjectTemplateLink>
<ProjectTemplateLink ProjectName="$safeprojectname$.Logic">
LogicMyTemplate.vstemplate
</ProjectTemplateLink>
<ProjectTemplateLink ProjectName="$safeprojectname$.Types">
TypesMyTemplate.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:
Хорошо, я нашел решение. Если вам нужно что-то вроде шаблона проекта Xamarin или ASP, где пользователь может выбирать тип проекта и конфигурацию, вам необходимо создать дополнительную реализацию для интерфейса IWizard.
- Сначала для проекта (корневой мастер). Он будет таким же, как в файле .vstemplate. Здесь вы пишете логику для отмены, кнопки «Назад» или для названий проектов.
- Второй мастер для подпроектов (SubProject.vstemplate). Здесь вы можете объявить новые переменные, такие как NuGet version, из некоторого хранилища (db, file ..) и проверить, следует ли создавать этот проект для этой конфигурации или вызвать исключение отмены.