Примечание
Для доступа к этой странице требуется авторизация. Вы можете попробовать войти или изменить каталоги.
Для доступа к этой странице требуется авторизация. Вы можете попробовать изменить каталоги.
Эта статья относится к: ✔️ пакету SDK для .NET Core 3.1 и более поздних версий
Имя
dotnet package add
— добавляет или обновляет ссылку на пакет в файле проекта.
Примечание.
Если вы используете пакет SDK для .NET 9 или более ранних версий, используйте вместо него формуdotnet add package
"глагол первой". В .NET 10 появилась форма "существительное первое". Дополнительные сведения см. в разделе "Более согласованный порядок команд".
Синопсис
dotnet package add <PACKAGE_NAME>
[-f|--framework <FRAMEWORK>] [--interactive] [--project <PROJECT>]
[-n|--no-restore] [--package-directory <PACKAGE_DIRECTORY>]
[--prerelease] [-s|--source <SOURCE>] [-v|--version <VERSION>]
dotnet package add -h|--help
Описание
Команда dotnet package add
предоставляет удобный вариант для добавления или обновления ссылки на пакет в файле проекта. При выполнении команды выполняется проверка совместимости, чтобы убедиться, что пакет совместим с платформами в проекте. Если проверка проходит и пакет не ссылается в файле проекта, <PackageReference>
элемент добавляется в файл проекта. Если проверка проходит и пакет уже ссылается в файле проекта, <PackageReference>
элемент обновляется до последней совместимой версии. После обновления файла проекта выполняется восстановление dotnet .
Например, добавление Microsoft.EntityFrameworkCore
в ToDo.csproj создает выходные данные, аналогичные следующему примеру:
Determining projects to restore...
Writing C:\Users\username\AppData\Local\Temp\tmp24A8.tmp
info : Adding PackageReference for package 'Microsoft.EntityFrameworkCore' into project 'C:\ToDo\ToDo.csproj'.
info : CACHE https://api.nuget.org/v3/registration5-gz-semver2/microsoft.entityframeworkcore/index.json
info : GET https://pkgs.dev.azure.com/dnceng/9ee6d478-d288-47f7-aacc-f6e6d082ae6d/_packaging/516521bf-6417-457e-9a9c-0a4bdfde03e7/nuget/v3/registrations2-semver2/microsoft.entityframeworkcore/index.json
info : CACHE https://api.nuget.org/v3/registration5-gz-semver2/microsoft.entityframeworkcore/page/0.0.1-alpha/3.1.3.json
info : CACHE https://api.nuget.org/v3/registration5-gz-semver2/microsoft.entityframeworkcore/page/3.1.4/7.0.0-preview.2.22153.1.json
info : CACHE https://api.nuget.org/v3/registration5-gz-semver2/microsoft.entityframeworkcore/page/7.0.0-preview.3.22175.1/7.0.0-preview.3.22175.1.json
info : NotFound https://pkgs.dev.azure.com/dnceng/9ee6d478-d288-47f7-aacc-f6e6d082ae6d/_packaging/516521bf-6417-457e-9a9c-0a4bdfde03e7/nuget/v3/registrations2-semver2/microsoft.entityframeworkcore/index.json 257ms
info : Restoring packages for C:\ToDo\ToDo.csproj...
info : Package 'Microsoft.EntityFrameworkCore' is compatible with all the specified frameworks in project 'C:\ToDo\ToDo.csproj'.
info : PackageReference for package 'Microsoft.EntityFrameworkCore' version '6.0.4' added to file 'C:\ToDo\ToDo.csproj'.
info : Writing assets file to disk. Path: C:\ToDo\obj\project.assets.json
log : Restored C:\ToDo\ToDo.csproj (in 171 ms).
Файл ToDo.csproj теперь содержит <PackageReference>
элемент для указанного пакета.
<PackageReference Include="Microsoft.EntityFrameworkCore" Version="6.0.4" />
Если проект подключен к центральному управлению пакетами (CPM),<PackageVersion>
элемент в Directory.Packages.props file
файле проекта добавляется или обновляется, а <PackageReference>
элемент добавляется в файл проекта.
В настоящее время поддерживаются следующие сценарии. В этих примерах предполагается, что последняя версия Microsoft.EntityFrameworkCore
6.0.4. Дополнительные сценарии, связанные с CPM, описаны в этой спецификации разработки.
Сценарий 1. <PackageReference>
Не существует в файле проекта, элемент не существует в Directory.Packages.props file
файле проекта, <PackageVersion>
а аргумент версии не передается из командной строки.
Команда CLI, выполняемая: dotnet package add Microsoft.EntityFrameworkCore --project ToDo.csproj
Элемент <PackageVersion>
добавляется в Directory.Packages.props file
элемент .
<PackageVersion Include="Microsoft.EntityFrameworkCore" Version="6.0.4" />
Элемент <PackageReference>
добавляется в файл проекта.
<PackageReference Include="Microsoft.EntityFrameworkCore" />
Сценарий 2. <PackageReference>
Не существует в файле проекта, <PackageVersion>
элемент не существует в Directory.Packages.props file
файле проекта, а аргумент версии передается из командной строки.
Команда CLI, выполняемая: dotnet package add Microsoft.EntityFrameworkCore --version 5.0.4 --project ToDo.csproj
Элемент <PackageVersion>
добавляется в Directory.Packages.props file
элемент .
<PackageVersion Include="Microsoft.EntityFrameworkCore" Version="5.0.4" />
Элемент <PackageReference>
добавляется в файл проекта.
<PackageReference Include="Microsoft.EntityFrameworkCore" />
Сценарий 3. <PackageReference>
Не существует в файле проекта, элемент существует в Directory.Packages.props file
файле проекта, <PackageVersion>
а аргумент версии не передается из командной строки.
Команда CLI, выполняемая: dotnet package add Microsoft.EntityFrameworkCore --project ToDo.csproj
Элемент <PackageVersion>
добавляется в Directory.Packages.props file
элемент .
<PackageVersion Include="Microsoft.EntityFrameworkCore" Version="6.0.4" />
Элемент <PackageReference>
добавляется в файл проекта.
<PackageReference Include="Microsoft.EntityFrameworkCore" />
Сценарий 4. <PackageReference>
Не существует в файле проекта, элемент существует в Directory.Packages.props file
файле проекта, <PackageVersion>
а аргумент версии передается из командной строки.
Команда CLI, выполняемая: dotnet package add Microsoft.EntityFrameworkCore --version 5.0.4 --project ToDo.csproj
Элемент <PackageVersion>
добавляется в Directory.Packages.props file
элемент .
<PackageVersion Include="Microsoft.EntityFrameworkCore" Version="5.0.4" />
Элемент <PackageReference>
добавляется в файл проекта.
<PackageReference Include="Microsoft.EntityFrameworkCore" />
Неявное восстановление
Вам не нужно выполнять команду dotnet restore
, так как она выполняется неявно всеми командами, которые требуют восстановления, например dotnet new
, dotnet build
, dotnet run
, dotnet test
, dotnet publish
и dotnet pack
. Чтобы отключить неявное восстановление, используйте параметр --no-restore
.
Команду dotnet restore
по-прежнему удобно использовать в некоторых сценариях, где необходимо явное восстановление, например в сборках с использованием непрерывной интеграции в Azure DevOps Services или системах сборки, где требуется явно контролировать время восстановления.
В документации по dotnet restore
приведены сведения об управлении каналами NuGet.
Аргументы
PROJECT
Указывает файл проекта. Если это не указано, команда выполняет поиск текущего каталога для одного.
PACKAGE_NAME
Ссылка на пакет для добавления.
Опции
-f|--framework <FRAMEWORK>
Добавляет ссылку на пакет только при выборе конкретной платформы.
-?|-h|--help
Выводит описание использования команды.
--interactive
Позволяет команде остановиться и дождаться, пока пользователь выполнит действие или введет данные. Например, чтобы завершить проверку подлинности.
-n|--no-restore
Добавляет ссылку на пакет без проверки предварительной версии восстановления и проверки совместимости.
--package-directory <PACKAGE_DIRECTORY>
Каталог, в котором нужно восстановить пакеты. Расположение восстановления пакета по умолчанию находится
%userprofile%\.nuget\packages
в Windows и~/.nuget/packages
macOS и Linux. Дополнительные сведения см. в статье "Управление глобальными пакетами, кэшем и временными папками в NuGet".--prerelease
Позволяет устанавливать предварительно установленные пакеты. Доступно с пакета SDK для .NET Core 5
-s|--source <SOURCE>
Универсальный код ресурса (URI) источника пакета NuGet для использования во время операции восстановления.
-v|--version <VERSION>
Версия пакета. См. раздел "Управление версиями пакетов NuGet".
Примеры
Добавьте
Microsoft.EntityFrameworkCore
пакет NuGet в проект:dotnet package add Microsoft.EntityFrameworkCore
Добавьте определенную версию пакета в проект:
dotnet package add Microsoft.Azure.DocumentDB.Core -v 1.0.0 --project ToDo.csproj
Добавьте пакет с помощью определенного источника NuGet:
dotnet package add Microsoft.AspNetCore.StaticFiles -s https://dotnet.myget.org/F/dotnet-core/api/v3/index.json