Отсутствующие папки в пользовательском шаблоне проекта Visual Studio
Я собираюсь создать собственный шаблон проекта Visual Studio, чтобы избежать повторения дополнительной работы по выполнению общих задач по настройке для проекта ASP.NET Core, таких как добавление EntityFramework с поддержкой MySQL. Поэтому я создал новый пример проекта для этого и сделал экспорт, используя Project> Export template.
Но когда я создаю новый проект на основе моего пользовательского шаблона, все папки Controllers
или же Views
не хватает. Только wwwroot
существует. Я осмотрел .vstemplate
файл, который, кажется, добавляет папки правильно
<Folder Name="wwwroot" TargetFolderName="wwwroot" />
<Folder Name="Controllers" TargetFolderName="Controllers">
Так что мне не понятно, что wwwroot
создан, но Controllers
нет, так как они используют точно такую же директиву.
Полный файл шаблона VS:
<VSTemplate Version="3.0.0" xmlns="http://schemas.microsoft.com/developer/vstemplate/2005" Type="Project">
<TemplateData>
<Name>AspNetCoreMySQL</Name>
<Description>Test</Description>
<ProjectType>CSharp</ProjectType>
<ProjectSubType>
</ProjectSubType>
<SortOrder>1000</SortOrder>
<CreateNewFolder>true</CreateNewFolder>
<DefaultName>AspNetCoreMySQL</DefaultName>
<ProvideDefaultName>true</ProvideDefaultName>
<LocationField>Enabled</LocationField>
<EnableLocationBrowseButton>true</EnableLocationBrowseButton>
<Icon>__TemplateIcon.ico</Icon>
</TemplateData>
<TemplateContent>
<Project TargetFileName="AspNetCoreMySQL.csproj" File="AspNetCoreMySQL.csproj" ReplaceParameters="true">
<Folder Name="Properties" TargetFolderName="Properties">
<ProjectItem ReplaceParameters="true" TargetFileName="launchSettings.json">launchSettings.json</ProjectItem>
</Folder>
<Folder Name="wwwroot" TargetFolderName="wwwroot" />
<Folder Name="Controllers" TargetFolderName="Controllers">
<ProjectItem ReplaceParameters="true" TargetFileName="PageController.cs">PageController.cs</ProjectItem>
</Folder>
<ProjectItem ReplaceParameters="true" TargetFileName="Program.cs">Program.cs</ProjectItem>
<ProjectItem ReplaceParameters="true" TargetFileName="ScaffoldingReadMe.txt">ScaffoldingReadMe.txt</ProjectItem>
<ProjectItem ReplaceParameters="true" TargetFileName="Startup.cs">Startup.cs</ProjectItem>
</Project>
</TemplateContent>
</VSTemplate>
1 ответ
Этот хороший обходной путь актуален для Visual Studio 2017. Редактировать .vstemplate
и добавить:
<CreateInPlace>true</CreateInPlace>
внутри:
<TemplateData>...</TemplateData>
Не забудьте скопировать обновленный ZIP-файл в:
Documents\Visual Studio 2017\Templates\ProjectTemplates\
Это должно перезагрузить шаблон в VS. Пожалуйста, обратите внимание на комментарий @Lion ниже, если у вас есть проблемы с перезагрузкой.