Примечание.
Для доступа к этой странице требуется авторизация. Вы можете попробовать войти или изменить каталоги.
Для доступа к этой странице требуется авторизация. Вы можете попробовать изменить каталоги.
Область применения: создание пакета • Поддерживаемые версии: 2.7+
Создает пакет NuGet на основе указанного nuspec или файла проекта. Команда (см. dotnet packкоманды dotnet) и msbuild -t:pack (см. целевые объекты MSBuild) могут использоваться в качестве альтернативных вариантов.
Important
Используйте dotnet pack или msbuild -t:pack для проектов на основе PackageReference . Начиная с NuGet версии 6.5+, команда пакета будет возникать ошибка при попытке упаковать эти типы проектов. Более ранние версии попытаются упаковать, но созданный пакет может быть неверным.
В разделе Mono создание пакета из файла проекта не поддерживается. Кроме того, необходимо настроить не локальные пути в .nuspec файле в пути в стиле Unix, так как nuget.exe не преобразует сами имена путей Windows.
Использование
nuget pack <nuspecPath | projectPath> [options] [-Properties ...]
где <nuspecPath> и <projectPath> укажите .nuspec файл проекта соответственно.
Options
-BasePathЗадает базовый путь к файлам, определенным в nuspec-файле .
-BuildУказывает, что перед сборкой пакета необходимо построить проект.
-ConfigFileФайл конфигурации NuGet для применения. Если не указано,
%AppData%\NuGet\NuGet.Configиспользуется (Windows) или~/.nuget/NuGet/NuGet.Config~/.config/NuGet/NuGet.Config(Mac/Linux).-Deterministic(7.9+) Сборка пакетов в детерминированном режиме. Это создает битовые идентичные пакеты для одних и того же входных данных (исходный код, файл проекта, конфигурация сборки), с известной предостережением меток времени. Сведения
DeterministicTimestampо том, как воспроизвести с идентичными датами и временем.-DeterministicTimestamp(7.9+) Укажите метку времени, используемую в качестве даты и времени изменения файла для всех файлов, добавленных в пакет NuGet. Это может быть дата и время в формате RFC 3339 (например
1996-12-19T16:39:57-08:00), это может быть число непрыжных секунд с 00:00:00 UTC 1 января 1970 г. (также известное как время Unix), или может быть специальной строкойtrue(по умолчанию, использовать текущее время часов) илиfalseне изменять время файла при создании детерминированных пакетов. Этот параметр игнорируется, еслиDeterministicон не включен.-ExcludeУказывает один или несколько шаблонов подстановочных знаков, которые следует исключить при создании пакета. Чтобы указать несколько шаблонов, повторите флаг -Exclude. См. приведенный ниже пример.
-ExcludeEmptyDirectoriesЗапрещает включение пустых каталогов при создании пакета.
-ForceEnglishOutput(3.5+) Принудительно nuget.exe работать с использованием инвариантной, английской культуры.
-?|-helpОтображает сведения о справке для команды.
-IncludeReferencedProjectsУказывает, что встроенный пакет должен включать ссылки на проекты как зависимости или как часть пакета. Если у указанного проекта есть соответствующий файл
.nuspec, имеющий то же имя, что и проект, то этот ссылающийся проект добавляется в качестве зависимости. В противном случае указанный проект добавляется как часть пакета.-InstallPackageToOutputPathУкажите, должна ли команда подготовить выходной каталог пакета для поддержки общего ресурса в качестве канала.
-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.-NonInteractiveПодавляет запросы на ввод или подтверждение пользователя.
-NoPackageAnalysisУказывает, что пакет не должен выполнять анализ пакетов после сборки пакета.
-OutputDirectoryУказывает папку, в которой хранится созданный пакет. Если папка не указана, используется текущая папка.
-OutputFileNamesWithoutVersionУкажите, должна ли команда подготовить выходное имя пакета без версии.
-PackagesDirectoryУказывает папку пакетов.
-p|-PropertiesДолжен отображаться последний в командной строке после других параметров. Указывает список свойств, которые переопределяют значения в файле project; см. раздел "Общие свойства MSBuild Project" для имен свойств. Аргумент "Свойства" — это список пар token=value, разделенных точкой с запятой, где каждое вхождение
$token$в.nuspecфайле будет заменено заданным значением. Значения могут быть строками в кавычках. Обратите внимание, что для свойства Configuration по умолчанию используется значение Debug. Чтобы изменить конфигурацию выпуска, используйте-Properties Configuration=Release. Как правило, свойства должны быть одинаковыми, которые использовались во время соответствующей сборки проекта, чтобы избежать потенциально странного поведения.-SolutionDirectoryУказывает каталог решения.
-Suffix(3.4.4+) Добавляет суффикс к номеру внутренне созданной версии, обычно используемому для добавления сборки или других идентификаторов предварительной версии. Например, при использовании
-suffix nightlyбудет создан пакет с номером версии, например1.2.3-nightly. Суффиксы должны начинаться с буквы, чтобы избежать предупреждений, ошибок и потенциальных несовместимости с различными версиями NuGet и диспетчер пакетов NuGet.-SymbolPackageFormatПри создании пакета символов можно выбрать один
snupkgиз вариантов.symbols.nupkg-SymbolsУказывает, что пакет содержит источники и символы. При использовании с файлом
.nuspecэто создает обычный файл пакета NuGet и соответствующий пакет символов. По умолчанию он создает устаревший пакет символов. Новый рекомендуемый формат для пакетов символов — SNUPKG. См. статью "Создание пакетов символов" (SNUPKG).-ToolУказывает, что выходные файлы проекта должны быть помещены в папку
toolsв пакете.-Verbosity [normal|quiet|detailed]Указывает объем сведений, отображаемых в выходных данных:
normal(по умолчанию)quietилиdetailed.-VersionПереопределяет номер версии из
.nuspecфайла.
См. также переменные среды
Исключение зависимостей разработки
Некоторые пакеты NuGet полезны в качестве зависимостей разработки, которые помогают создавать собственную библиотеку, но не обязательно требуются в качестве фактических зависимостей пакета.
Команда pack игнорирует package записи, в packages.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 package.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"
Замечание
Команда pack для проектов в стиле SDK не поддерживается, используется dotnet pack или msbuild -t:pack для упаковки этих проектов.