自定义 Visual Studio 项目模板中缺少文件夹
Missing folders in custom Visual Studio project template
我将创建一个自定义 Visual Studio 项目模板,以避免重复 ASP.NET 核心项目的常见配置任务的额外工作,例如添加 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>
这个不错的 是 Visual Studio 2017 年的实际情况。编辑 .vstemplate
并添加:
<CreateInPlace>true</CreateInPlace>
里面:
<TemplateData>...</TemplateData>
不要忘记将更新后的 ZIP 文件复制到:
Documents\Visual Studio 2017\Templates\ProjectTemplates\
这应该会在 VS 中重新加载模板。重载有问题请关注下方@Lion评论
我将创建一个自定义 Visual Studio 项目模板,以避免重复 ASP.NET 核心项目的常见配置任务的额外工作,例如添加 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>
这个不错的 .vstemplate
并添加:
<CreateInPlace>true</CreateInPlace>
里面:
<TemplateData>...</TemplateData>
不要忘记将更新后的 ZIP 文件复制到:
Documents\Visual Studio 2017\Templates\ProjectTemplates\
这应该会在 VS 中重新加载模板。重载有问题请关注下方@Lion评论