我如何在单个NuGet软件包中提供多个`dotnet new`模板?
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了我如何在单个NuGet软件包中提供多个`dotnet new`模板?相关的知识,希望对你有一定的参考价值。
我有一个由三个模板组成的dotnet new
模板项目:
- 图书馆
- Headless .NET Core服务
- ASP.NET Core Web应用程序
项目源可以在这里找到(它是自由开源):https://github.com/petabridge/petabridge-dotnet-new/
我遵循此处https://docs.microsoft.com/en-us/dotnet/core/tools/custom-templates概述的最佳实践,并创建了针对所有三个模板的.csproj
:
<Project Sdk="Microsoft.NET.Sdk">
<PropertyGroup>
<PackageType>Template</PackageType>
<PackageVersion>1.0</PackageVersion>
<PackageId>Petabridge.Templates</PackageId>
<Title>Petabridge.Templates</Title>
<Authors>Petabridge</Authors>
<Description>Professional .NET Core templates complete with CI, Docs, and more. Supports library, Akka.NET, and ASP.NET Core application types.</Description>
<PackageTags>dotnet-new;templates;petabridge;akka;</PackageTags>
<TargetFramework>netstandard2.0</TargetFramework>
<PackageReleaseNotes></PackageReleaseNotes>
<IncludeContentInPack>true</IncludeContentInPack>
<IncludeBuildOutput>false</IncludeBuildOutput>
<ContentTargetFolders>content</ContentTargetFolders>
</PropertyGroup>
<ItemGroup>
<Content Include="templates***" Exclude="templates**in**;templates**obj**" />
<Compile Remove="***" />
</ItemGroup>
</Project>
此源的实时版本可以在这里找到:https://github.com/petabridge/petabridge-dotnet-new/blob/dev/src/Petabridge.Templates.csproj
运行构建脚本并检查软件包输出后,我可以看到作为软件包输出的一部分构建的NuGet软件包肯定包含其中的所有三个模板-您可以从Github下载该软件包的签名版本在此存储库上发布:https://github.com/petabridge/petabridge-dotnet-new/releases/tag/1.0.1
我的问题是,当我使用最新的.NET Core 3.0 SDK将这些模板安装到计算机上时,我只看到第三个模板(Web应用程序)显示在安装列表中:
PS> dotnet new -i "Petabridge.Templates::*"
我做错了什么?为什么安装此软件包时只显示一个模板?通过单击我包含的存储库链接,可以找到所有相关的源代码,模板配置等。
我有同样的问题。我通过在每个模板的template.json文件中为groupIdentity提供不同的值来解决它。
以上是关于我如何在单个NuGet软件包中提供多个`dotnet new`模板?的主要内容,如果未能解决你的问题,请参考以下文章