缺少自定义Visual Studio项目模板中的文件夹

时间:2017-05-24 16:58:23

标签: visual-studio asp.net-core visual-studio-2017 visual-studio-templates

我将创建一个自定义Visual Studio项目模板,以避免重复ASP.NET Core项目的常见配置任务的额外工作,例如添加带有MySQL支持的EntityFramework。所以我为此创建了一个新的示例项目,并使用 Project>进行了导出。导出模板

但是当我根据自定义模板创建新项目时,缺少ControllersViews等所有文件夹。仅存在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 个答案:

答案 0 :(得分:5)

这个不错的workaround对于Visual Studio 2017来说是实际的。编辑.vstemplate并添加:

<CreateInPlace>true</CreateInPlace>

<TemplateData>...</TemplateData>

不要忘记将更新的ZIP文件复制到:

Documents\Visual Studio 2017\Templates\ProjectTemplates\

这应该在VS中重新加载模板。如果您在重装时遇到麻烦,请注意下面的@Lion评论。