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

Latest commit

 

History

History
111 lines (81 loc) · 6.63 KB

File metadata and controls

111 lines (81 loc) · 6.63 KB
title NuGet CLI 包命令
description nuget.exe pack 命令的参考
author karann-msft
ms.author karann
ms.date 01/18/2018
ms.topic reference
ms.openlocfilehash 649c440d868c89068a069a396919b58b999369e5
ms.sourcegitcommit f29fa9b93fd59e679fab50d7413bbf67da3ea5b3
ms.translationtype MT
ms.contentlocale zh-CN
ms.lasthandoff 07/17/2020
ms.locfileid 86451133

pack 命令(NuGet CLI)

适用于: 创建包的 • 支持版本: 2.7 +

基于指定的nuspec或项目文件创建 NuGet 包。 dotnet pack命令(请参阅dotnet 命令)和 msbuild -t:pack (请参阅MSBuild 目标)可以用作备用项。

Important

dotnet pack msbuild -t:pack 为基于PackageReference的项目使用或。 在 Mono 下,不支持从项目文件创建包。 还需要将文件中的非本地路径调整 .nuspec 为 Unix 样式路径,因为 nuget.exe 不会转换 Windows 路径名本身。

使用情况

nuget pack <nuspecPath | projectPath> [options] [-Properties ...]

<nuspecPath><projectPath> 分别指定 .nuspec 或项目文件。

选项

选项 说明
BasePath 设置在nuspec文件中定义的文件的基路径。
生成 指定应在生成包之前生成项目。
Exclude 指定创建包时要排除的一个或多个通配符模式。 若要指定多个模式,请重复-Exclude 标志。 请参阅以下示例。
ExcludeEmptyDirectories 在生成包时阻止包含空目录。
ForceEnglishOutput (3.5 +) 使用固定的、基于英语的区域性强制运行 nuget.exe。
ConfigFile 指定 pack 命令的配置文件。
帮助 显示命令的帮助信息。
IncludeReferencedProjects 指示生成的包应包含作为依赖项或包的一部分的引用项目。 如果引用的项目具有与 .nuspec 项目具有相同名称的相应文件,则会将引用的项目添加为依赖项。 否则,被引用项目作为包的一部分添加。
MinClientVersion 设置所创建的包的minClientVersion属性。 此值将覆盖文件中现有minClientVersion属性的值(如果有) .nuspec
MSBuildPath (4.0 +) 指定要与命令一起使用的 MSBuild 的路径,优先于 -MSBuildVersion
MSBuildVersion (3.2 +) 指定要与此命令一起使用的 MSBuild 版本。 支持的值为4、12、14、15.1、15.3、15.4、15.5、15.6、15.7、15.8、15.9。 默认情况下,将选取路径中的 MSBuild,否则默认为已安装的最高版本的 MSBuild。
NoDefaultExcludes 禁止默认排除 NuGet 包文件和以点(例如和)开头的文件和文件夹 .svn .gitignore
NoPackageAnalysis 指定 pack 不应在生成包后运行包分析。
OutputDirectory 指定在其中存储创建的包的文件夹。 如果未指定文件夹,则使用当前文件夹。
属性 应在其他选项后出现在命令行的最后。 指定重写项目文件中的值的属性的列表;请参阅属性名称的常用 MSBuild 项目属性。 此处的 Properties 参数是标记 = 值对列表,用分号分隔,其中每个 $token$ 在文件中出现的 .nuspec 都将替换为给定的值。 值可以是用引号引起来的字符串。 请注意,对于 "配置" 属性,默认值为 "调试"。 若要更改为发布配置,请使用 -Properties Configuration=Release一般情况下,属性应该与在相应的项目生成过程中使用的属性相同,以避免潜在的异常行为。
Suffix (3.4.4 +) 将后缀追加到内部生成的版本号,通常用于追加生成或其他预发行标识符。 例如,使用 -suffix nightly 将创建一个版本号与相同的包 1.2.3-nightly 。 后缀必须以字母开头,以避免与不同版本的 NuGet 和 NuGet 包管理器的警告、错误和可能的不兼容性。
符号 指定包包含源和符号。 与文件一起使用时 .nuspec ,将创建一个常规 NuGet 包文件和相应的符号包。 默认情况下,它会创建旧的符号包。 符号包的新推荐格式为 .snupkg。 请参阅创建符号包 (.snupkg)
工具 指定应将项目的输出文件放在 tool 文件夹中。
详细级别 指定在输出中显示的详细信息量: "正常"、"静默"、"详细"。
版本 覆盖文件中的版本号 .nuspec

另请参阅环境变量

排除开发依赖项

某些 NuGet 包可用作开发依赖项,它们可帮助你创作自己的库,但不一定是实际的包依赖项。

pack命令将忽略 packagepackages.config developmentDependency 属性设置为的项 true 。 这些项不会作为依赖项包含在所创建的包中。

例如,请考虑 packages.config 源项目中的以下文件:

<?xml version="1.0" encoding="utf-8"?>
<packages>
    <package id="jQuery" version="1.5.2" />
    <package id="netfx-Guard" version="1.3.3.2" developmentDependency="true" />
    <package id="microsoft-web-helpers" version="1.15" />
</packages>

对于此项目,创建的包 nuget pack 将依赖于 jQuery 和, microsoft-web-helpers 而不是 netfx-Guard

抑制包警告

尽管建议你在包操作期间解决所有 NuGet 警告,但在某些情况下禁止它们是保证的。

可以通过以下方式实现此目的:

nuget.exe pack nuspec-Properties NoWarn = NU5104

示例

nuget pack

nuget pack foo.nuspec

nuget pack foo.csproj

nuget pack foo.csproj -Properties Configuration=Release

nuget pack foo.csproj -Build -Symbols -Properties owners=janedoe,xiaop;version="1.0.5"

# Create a package from project foo.csproj, using MSBuild version 12 to build the project
nuget pack foo.csproj -Build -Symbols -MSBuildVersion 12 -Properties owners=janedoe,xiaop;version="1.0.5"

# Create a package from project foo.nuspec and the corresponding symbol package using the new recommended format .snupkg
nuget pack foo.nuspec -Symbols -SymbolPackageFormat snupkg

nuget pack foo.nuspec -Version 2.1.0

nuget pack foo.nuspec -Version 1.0.0 -MinClientVersion 2.5

nuget pack Package.nuspec -exclude "*.exe" -exclude "*.bat"