打包 Razor 类库
- 3 分钟
通常需要执行的任务是打包库供其他开发人员重复使用。 NuGet 打包使得任何开发人员都很难获取和正确配置其应用程序的所有 .NET 引用。
在前面的单元中,你生成了模式对话组件,并在自己的应用程序中使用它。 现在,你想要在其他应用程序中重复使用它。
在本单元中,你将了解将 Razor 类库配置为 NuGet 包所需的步骤。 你还了解如何使用包存储库服务(如 NuGet.org 或 GitHub 存储库)打包库以供分发。
配置 Razor 类库进行 NuGet 打包
利用 .NET 生态系统,可以轻松定义其他开发人员识别和使用组件所需的属性。 可以在 Razor 类库的项目文件(*.csproj)中定义所有这些属性,以便它们随库一起旅行。 然后,当库更新时,这些属性会相应地更新。
可以在 Visual Studio 项目属性 - 包 对话框中配置标识包的字段,也可以自行在 *.csproj 文件中直接创建条目。
创建包所需的四个字段包括:
字段 | DESCRIPTION | 默认值 |
---|---|---|
PackageId | 包标识符,在整个 NuGet 存储库中是唯一的。 | 库的 AssemblyName |
版本 | Major.Minor.Patch[-Suffix] 中的特定版本号,其中 -Suffix(可选)定义预发行版版本。 | 1.0.0 |
作者 | 软件包的作者。 | AssemblyName |
公司 | 负责创建和发布包的公司的名称。 | AssemblyName |
其中一些字段具有默认值,发布名为 MyFirstLibrary 的包可能很有趣。 强烈建议显式定义这些值。
在上一单元中,你了解到 Razor 类库的静态内容在 _content/[PACKAGE_ID]/
的位置是可用的,现在可以看到 PackageId
所配置的值。
配置了这些值的示例项目文件可能如以下示例所示:
<PropertyGroup>
<PackageId>Learn.MyFirstLibrary</PackageId>
<Version>0.1.0-alpha1</Version>
<Authors>Susan Developer, Terry Programmer</Authors>
<Company>AdventureWorks</Company>
</PropertyGroup>
生成项目时,还可以通过在 Visual Studio 项目属性对话框中选择“生成时创建 NuGet 包”的选项或在其他包字段旁边添加条目来配置它以生成 NuGet 包,如下所示:
<GeneratePackageOnBuild>True</GeneratePackageOnBuild>
可以配置许多可选项目属性,包括:
- 适用于在 NuGet 存储库中显示的
Description
- 版权声明
- 许可信息
- 图标
- 项目链接
有关属性的完整列表,请查看 MSBuild 包目标上的Microsoft文档。
打包库
将库配置写入 *.csproj 文件后,可以通过右键单击项目并选择 Pack 命令或在项目文件夹中运行以下命令,在 Visual Studio 中生成 NuGet 包:
dotnet pack
此命令 dotnet pack
生成包含 PackageID 和版本号的包,并将其放在标准项目生成输出文件夹中。