.NET CORE 2.0项目模板$ SAFEPROJECTNAME $



我正在构建一个.NET Core 2.0 Web API多项目模板,其中包含6个不同的项目,因此我使用了这些链接来创建我的模板:

  • 如何为dotnet创建自己的模板new
  • 搭档创建者2017
  • 如何为Visual Studio 2017创建项目模板(Sidewaffle Creator 2017)

问题是,当我从此模板创建一个新项目时,它不会用新项目名称替换模板名称,并且它使我手动更改每个文件中的名称空间以及每个项目。<<<<<<<<<</p>

这是我的模板:

{
  "author": "Liran Friedman",
  "classifications": [],
  "description": ".Net Core Web API project template",
  "name": "project template",
  "defaultName": "Template.Tools.Project",
  "identity": "Template.Tools.CSharp",
  "groupIdentity": "Template.Tools",
  "tags": {
    "language": "C#",
    "type": "project"
  },
  "shortName": "tmpproj",
  "sourceName": "Template.Tools.WebAPI",
  "guids": [],
  "primaryOutputs": [
    {
      "path": "Template.Tools.Common\Template.Tools.Common.csproj"
    },
    {
      "path": "Template.Tools.External\Template.Tools.External.csproj"
    },
    {
      "path": "Template.Tools.Implementation\Template.Tools.Implementation.csproj"
    },
    {
      "path": "Template.Tools.Interfaces\Template.Tools.Interfaces.csproj"
    },
    {
      "path": "Template.Tools.Models\Template.Tools.Models.csproj"
    },
    {
      "path": "Template.Tools.WebAPI\Template.Tools.WebAPI.csproj"
    }
  ]
}

这是我的模板。Vstemplate:

<VSTemplate Version="3.0.0" xmlns="http://schemas.microsoft.com/developer/vstemplate/2005" Type="ProjectGroup">
  <TemplateData>
    <Name>project template</Name>
    <Description>.Net Core Web API project template</Description>
    <TemplateID>Template.Tools.CSharp</TemplateID>
    <DefaultName>Template.Tools.Project</DefaultName>
    <Icon>project-icon.png</Icon>
    <ProjectType>CSharp</ProjectType>
    <NumberOfParentCategoriesToRollUp>1</NumberOfParentCategoriesToRollUp>
    <SortOrder>5000</SortOrder>
    <CreateNewFolder>true</CreateNewFolder>
    <ProvideDefaultName>true</ProvideDefaultName>
    <LocationField>Enabled</LocationField>
    <EnableLocationBrowseButton>true</EnableLocationBrowseButton>
  </TemplateData>
  <TemplateContent>
    <ProjectCollection/>
    <CustomParameters>
      <CustomParameter Name = "$language$" Value="CSharp" />
      <CustomParameter Name = "$uistyle$" Value="none"/>
      <CustomParameter Name = "$groupid$" Value="Template.Tools" />
      <CustomParameter Name = "SideWaffleNewProjNode" Value="CSharpTemplate Projects"/>
    </CustomParameters>
  </TemplateContent>
  <WizardExtension>
    <Assembly>Microsoft.VisualStudio.TemplateEngine.Wizard, Version=1.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</Assembly>
    <FullClassName>Microsoft.VisualStudio.TemplateEngine.Wizard.TemplateEngineWizard</FullClassName>
  </WizardExtension>
</VSTemplate>

我知道,在创建Visual Studio模板的先前版本中,有一个参数$ safeprojectName $在.NET核心模板中是否有任何解决方案?

基本上,如果您只想使用旧的$ safeprojectName $,则可以编辑您的" sourcename":" template.tools.tools.webapi" attibute the the template.json中的attibute。代替。假设您只想替换"模板",而不是"模板"。此外,您可以添加一个"符号"字段来添加自定义替换参数,类似于此:

 "symbols": {
  "foo-rename": {
    "type": "parameter",
    "datatype": "string",
    "replaces": "foo",
    "defaultValue": "new-component",
    "description": "Renames component"
  },
}

这将替换您模板包含的每个文件中的每一个" foo"的发生。但是,使用搭档创建者时,这不适用于文件或文件夹名称。但是不要把我钉在那个上,因为我还没有完全弄清楚。我只会在这两个GitHub问题上等待答案:https://github.com/dotnet/templating/issues/396https://github.com/ligershark/sidewafflev2/issues/32

相关内容

  • 没有找到相关文章

最新更新