Skip to content
This repository was archived by the owner on Mar 6, 2025. It is now read-only.

Latest commit

 

History

History
187 lines (126 loc) · 9.36 KB

File metadata and controls

187 lines (126 loc) · 9.36 KB
title 在 Windows 上使用 Visual Studio 创建和发布 .NET Framework NuGet 包
description 在 Windows 上使用 Visual Studio 创建和发布 .NET Framework NuGet 包的演练教程。
author karann-msft
ms.author karann
ms.date 05/13/2018
ms.topic quickstart
ms.openlocfilehash e00aac83a710e2f745d5e4bb9aec741ee686e595
ms.sourcegitcommit 2b50c450cca521681a384aa466ab666679a40213
ms.translationtype HT
ms.contentlocale zh-CN
ms.lasthandoff 04/07/2020
ms.locfileid 72380641

快速入门:使用 Visual Studio 创建和发布包(.NET Framework、Windows)

若要从 .NET Framework 类库创建 NuGet 包,需要在 Windows 上的 Visual Studio 中创建 DLL,然后使用 nuget.exe 命令行工具创建并发布包。

Note

本快速入门教程仅适用于 Windows 版的 Visual Studio 2017 和更高版本。 Visual Studio for Mac 不包括此处所述的功能。 改为使用 dotnet CLI 工具

先决条件

  1. 通过任何与 .NET 相关的工作负载从 visualstudio.com 安装任意版本的 Visual Studio 2017 或更高版本。 安装 .NET 工作负载时,Visual Studio 2017 会自动包含 NuGet 功能。

  2. 要安装 nuget.exe CLI,从 nuget.org 下载它,将 .exe 文件保存到合适的文件夹,然后将该文件夹添加到 PATH 环境变量中。

  3. 如果你还没有帐户,请在 nuget.org 上注册一个免费帐户。 创建新帐户会发送确认电子邮件。 必须先确认该帐户,才能上传包。

创建类库项目

可以使用现有的 .NET Framework 类库项目用于要打包的代码,或者创建一个简单的项目,如下所示:

  1. 在 Visual Studio 中,选择“文件”>“新建”>“项目”,再依次选择“Visual C#”节点、“类库(.NET Framework)”模板,将项目命名为“AppLogger”,然后单击“确定” 。

  2. 右键单击生成的项目文件并选择“生成”,确保已正确创建项目。 DLL 位于调试文件夹中(或发布中,如果生成的是该配置)。

当然,在实际的 NuGet 包中,可实现许多有用的功能,让其他人可通过这些功能生成应用程序。 也可以按个人喜欢的方式设置目标框架。 有关示例,请参阅 UWPXamarin 指南。

但是对于本演练,无需编写其他任何代码,因为模板的类库足以创建包。 但是,如果你需要此程序包的某个功能代码,请使用以下命令:

using System;

namespace AppLogger
{
    public class Logger
    {
        public void Log(string text)
        {
            Console.WriteLine(text);
        }
    }
}

Tip

除非你有其他选择理由,否则 .NET Standard 是 NuGet 包的首选目标,因为它提供了与最广泛的使用项目的兼容性。 请参阅使用 Visual Studio 创建和发布包 (.NET Standard)

配置包的项目属性

NuGet 包中包含清单(.nuspec 文件),其中包含相关的元数据,例如包标识符、版本号和描述等。 其中一些元数据可直接从项目属性中获取,避免在项目和清单中对其进行单独更新。 本节介绍在何处设置适用的属性。

  1. 选择“项目”>“属性”菜单命令,然后选择“应用程序”选项卡 。

  2. 在“程序集名称”字段中,为包提供唯一标识符 。

    [!Important] 你必须为包提供一个在 nuget.org 中唯一或你使用的任何主机的标识符。 对于本次演练,我们建议在名称中包含“Sample”或“Test”,因为稍后的发布步骤确实会使该包公开显示(尽管实际上不太可能有人会使用它)。

    如果你尝试发布名称已存在的包,则会看到一个错误。

  3. 选择“程序集信息...”按钮,此时会出现一个对话框,可在其中输入清单中的其他属性(请参阅 .nuspec 文件引用 - 替换令牌) 。 最常用的字段是“标题”、“描述”、“公司”、“版权所有”和“程序集版本” 。 这些属性最终会随包出现在主机上(例如 nuget.org ),因此请确保对其进行完整描述。

    Visual Studio 内 .NET Framework 项目中的程序集信息

  4. 可选:若要直接查看和编辑属性,请打开项目中的 Properties/AssemblyInfo.cs 文件。

  5. 设置属性时,请将项目配置设置为“发布”并重新生成项目以生成更新的 DLL 。

生成初始清单

既然已准备好 DLL 并已设置项目属性,现在即可使用 nuget spec 命令从项目生成初始 .nuspec 文件。 此步骤包括相关替换令牌,便于从项目文件中提取信息。

仅运行一次 nuget spec 即可生成初始清单。 更新包时,可以更改项目中的值或直接编辑清单。

  1. 打开命令提示符并导航到包含 AppLogger.csproj 文件的项目文件夹。

  2. 运行以下命令:nuget spec AppLogger.csproj。 通过指定项目,NuGet 会创建匹配项目名称的清单,在此示例中为 AppLogger.nuspec。 它还会包括清单中的替换令牌。

  3. 在文本编辑器中打开 AppLogger.nuspec 以检查其内容,其内容应如下所示:

    <?xml version="1.0"?>
    <package >
      <metadata>
        <id>Package</id>
        <version>1.0.0</version>
        <authors>YourUsername</authors>
        <owners>YourUsername</owners>
        <license type="expression">MIT</license>
        <projectUrl>http://PROJECT_URL_HERE_OR_DELETE_THIS_LINE</projectUrl>
        <iconUrl>http://ICON_URL_HERE_OR_DELETE_THIS_LINE</iconUrl>
        <requireLicenseAcceptance>false</requireLicenseAcceptance>
        <description>Package description</description>
        <releaseNotes>Summary of changes made in this release of the package.</releaseNotes>
        <copyright>Copyright 2019</copyright>
        <tags>Tag1 Tag2</tags>
      </metadata>
    </package>

编辑清单

  1. 如果尝试在 .nuspec 文件中创建包含默认值的包,NuGet 会产生错误,因此在继续操作之前必须编辑以下字段。 请参阅 .nuspec 文件引用 - 可选元数据元素,了解如何使用它们。

    • licenseUrl
    • projectUrl
    • iconUrl
    • releaseNotes
    • 标记
  2. 对于面向公共使用而生成的包,请特别注意 Tags 属性,因为这些标记可帮助其他人在源中(例如 nuget.org)查找包并了解其用途 。

  3. 也可以在此时向清单中添加任何其他元素,如 .nuspec 文件引用中所述。

  4. 在继续之前保存文件。

运行 pack 命令

  1. 从包含 .nuspec 文件的文件夹中的命令提示符,运行命令 nuget pack

  2. NuGet 以 identifier-version.nupkg 形式生成 .nupkg 文件,你可在当前文件夹中找到该文件 。

发布包

有了 .nupkg 文件后,可以使用 nuget.exe 以及从 nuget.org 获取的 API 密钥将其发布到 nuget.org。对于 nuget.org,必须使用 nuget.exe 4.1.0 或更高版本。

[!INCLUDE publish-notes]

获取 API 密钥

[!INCLUDE publish-api-key]

用 nuget push 发布

  1. 打开命令行并更改到包含 .nupkg 文件的文件夹。

  2. 运行以下命令,指定包名称并使用你的 API 密钥替换密钥值:

    nuget push AppLogger.1.0.0.nupkg qz2jga8pl3dvn2akksyquwcs9ygggg4exypy3bhxy6w6x6 -Source https://api.nuget.org/v3/index.json
    
  3. nuget.exe 会显示发布过程的结果:

    Pushing AppLogger.1.0.0.nupkg to 'https://www.nuget.org/api/v2/package'...
        PUT https://www.nuget.org/api/v2/package/
        Created https://www.nuget.org/api/v2/package/ 6829ms
    Your package was pushed.
    

请参阅 nuget push

发布错误

[!INCLUDE publish-errors]

管理已发布的包

[!INCLUDE publish-manage]

后续步骤

祝贺你创建第一个 NuGet 包!

[!div class="nextstepaction"] 创建包

若要了解更多 NuGet 产品,请选择以下链接。