Ескертпе
Бұл бетке кіру үшін қатынас шегін айқындау қажет. Жүйеге кіруді немесе каталогтарды өзгертуді байқап көруге болады.
Бұл бетке кіру үшін қатынас шегін айқындау қажет. Каталогтарды өзгертуді байқап көруге болады.
Эта статья относится к: ✔️ пакету SDK для .NET 6 и более поздних версий
Имя
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> Не существует в файле проекта, элемент не существует в <PackageVersion>файле проекта, Directory.Packages.props file а аргумент версии не передается из командной строки.
Команда 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> Не существует в файле проекта, элемент существует в <PackageVersion>файле проекта, Directory.Packages.props file а аргумент версии не передается из командной строки.
Команда 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> Не существует в файле проекта, элемент существует в <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" />
Неявное восстановление
Вам не нужно выполнять команду 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/packagesmacOS и Linux. Дополнительные сведения см. в статье "Управление глобальными пакетами, кэшем и временными папками в NuGet".--prereleaseПозволяет устанавливать предварительно установленные пакеты.
-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