前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >教程:创建模板包

教程:创建模板包

作者头像
用户4268038
发布2022-01-05 19:00:02
6870
发布2022-01-05 19:00:02
举报
文章被收录于专栏:stcnb

使用 .NET,可以创建和部署可生成项目、文件甚至资源的模板。 本教程是系列教程的第三部分,介绍如何创建、安装和卸载用于 dotnet new 命令的模板。

在本系列的这一部分中,你将了解如何:

创建一个 *.csproj 项目以生成模板包

配置项目文件以进行打包

从 NuGet 包文件安装模板包

按包 ID 卸载模板包

先决条件

完成本系列教程的第 1 部分和第 2 部分。

本教程使用本教程前两部分中创建的两个模板。 只要将不同的模板作为文件夹复制到 working\templates\ 文件夹中,就可以使用该模板。

打开终端并导航到 working\ 文件夹。

创建模板包项目

模板包是打包到 NuGet 包中的一个或多个模板。 安装或卸载模板包时,将分别添加或删除包中包含的所有模板。 本系列教程的前几部分仅适用于各自的模板。 若要共享非打包模板,必须复制模板文件夹并通过该文件夹进行安装。 由于模板包中可以包含多个模板,并且是单个文件,因此共享更容易。

模板包由 NuGet 包 (.nupkg) 文件表示。 并且,与任何 NuGet 包一样,可以将模板包上传到 NuGet 源。 dotnet new --install 命令支持从 NuGet 包源安装模板包。 此外,可以直接从 .nupkg 文件安装模板包。

通常情况下,使用 C# 项目文件来编译代码并生成二进制文件。 但是,该项目也可用于生成模板包。 通过更改 .csproj 的设置,可以阻止它编译任何代码,而是将模板的所有资产都包含在内作为资源。 生成此项目后,它会生成模板包 NuGet 包。

将要创建的包将包含先前创建的项模板和包模板。 由于我们将两个模板分组到 working\templates\ 文件夹中,因此可以使用 .csproj 文件的 working 文件夹。

在终端中,导航到 working 文件夹。 创建一个新项目,将名称设置为 templatepack,并将输出文件夹设置为当前文件夹。

dotnet new console -n templatepack -o .

-n 参数将 .csproj 文件名设置为 templatepack.csproj 。 -o 参数将在当前目录中创建文件。 应看到类似于以下输出的结果。

The template "Console Application" was created successfully.

Processing post-creation actions...

Running 'dotnet restore' on .\templatepack.csproj...

Restore completed in 52.38 ms for C:\working\templatepack.csproj.

Restore succeeded.

新项目模板生成 Program.cs 文件。 模板不使用此文件,你可以安全删除。

接下来,在你喜爱的编辑器中打开 templatepack.csproj 文件,并将内容替换为以下 XML:

<Project Sdk="Microsoft.NET.Sdk">

<PropertyGroup>

<PackageType>Template</PackageType>

<PackageVersion>1.0</PackageVersion>

<PackageId>AdatumCorporation.Utility.Templates</PackageId>

<Title>AdatumCorporation Templates</Title>

<Authors>Me</Authors>

<Description>Templates to use when creating an application for Adatum Corporation.</Description>

<PackageTags>dotnet-new;templates;contoso</PackageTags>

<TargetFramework>netstandard2.0</TargetFramework>

<IncludeContentInPack>true</IncludeContentInPack>

<IncludeBuildOutput>false</IncludeBuildOutput>

<ContentTargetFolders>content</ContentTargetFolders>

<NoWarn>

本文系外文翻译,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文系外文翻译前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档