Справка по скриптам dotnet-install
Имя.
dotnet-install.ps1
| dotnet-install.sh
— скрипт, используемый для установки общей среды выполнения и пакета SDK для .NET.
Краткие сведения
Windows:
dotnet-install.ps1 [-Architecture <ARCHITECTURE>] [-AzureFeed]
[-Channel <CHANNEL>] [-DryRun] [-FeedCredential]
[-InstallDir <DIRECTORY>] [-JSonFile <JSONFILE>]
[-NoCdn] [-NoPath] [-ProxyAddress] [-ProxyBypassList <LIST_OF_URLS>]
[-ProxyUseDefaultCredentials] [-Quality <QUALITY>] [-Runtime <RUNTIME>]
[-SkipNonVersionedFiles] [-UncachedFeed] [-KeepZip] [-ZipPath <PATH>] [-Verbose]
[-Version <VERSION>]
Get-Help ./dotnet-install.ps1
Linux или MacOS:
dotnet-install.sh [--architecture <ARCHITECTURE>] [--azure-feed]
[--channel <CHANNEL>] [--dry-run] [--feed-credential]
[--install-dir <DIRECTORY>] [--jsonfile <JSONFILE>]
[--no-cdn] [--no-path] [--quality <QUALITY>]
[--runtime <RUNTIME>] [--runtime-id <RID>]
[--skip-non-versioned-files] [--uncached-feed] [--keep-zip] [--zip-path <PATH>] [--verbose]
[--version <VERSION>]
dotnet-install.sh --help
Так как bash-скрипт также считывает параметры PowerShell, их можно использовать с этим скриптом в системах Linux и macOS.
Description
Скрипты dotnet-install
выполняют установку пакета SDK для .NET без прав администратора. Этот пакет включает общую среду выполнения и .NET CLI. Существует два скрипта:
- Скрипт PowerShell, который используется в Windows. Инструкции по установке см. в разделе "Установка в Windows".
- Скрипт bash, который выполняется в Linux и macOS. Инструкции по установке см. в разделе "Установка в Linux " и "Установка" в macOS.
Примечание.
.NET собирает данные телеметрии. Дополнительные сведения и о том, как отказаться от этого, см. в разделе Телеметрия пакета SDK для .NET.
Характер использования
Скрипты предназначены для использования в сценариях непрерывной интеграции (CI), если:
Пакет SDK должен быть установлен без участия пользователя и без использования прав администратора.
Установка пакета SDK не обязательно должна выполняться в ходе нескольких выполнений непрерывной интеграции.
Типичная последовательность событий:
- запускается непрерывная интеграция;
- в ходе непрерывной интеграции устанавливается пакет SDK с помощью одного из этих скриптов;
- непрерывная интеграция завершается, временные данные, включая установку пакета SDK, удаляются.
Чтобы настроить среду разработки или запустить приложения, используйте установщики вместо этих скриптов.
Рекомендуемая версия
Мы рекомендуем использовать стабильную версию скриптов.
- Bash (Linux или macOS): https://dot.net/v1/dotnet-install.sh
- PowerShell (Windows): https://dot.net/v1/dotnet-install.ps1
Источник скриптов находится в репозитории dotnet/install-scripts GitHub.
Поведение скрипта
Оба скрипта выполняют одни и те же функции. Они скачивают файл ZIP или TAR из места сборки CLI, а затем осуществляют установку в расположении по умолчанию или расположении, заданном параметром -InstallDir|--install-dir
.
По умолчанию скрипты установки скачивают и устанавливают пакет SDK. Если вы хотите получить только общую среду выполнения, укажите аргумент -Runtime|--runtime
.
По умолчанию скрипт добавляет место установки в переменную $PATH для текущего сеанса. Переопределите это поведение по умолчанию, указав аргумент -NoPath|--no-path
. Скрипт не задает переменную среды DOTNET_ROOT
.
Внимание
Скрипт не добавляет расположение установки в переменную среды пользователя PATH
, его необходимо добавить вручную.
Перед выполнением скрипта убедитесь, что операционная система поддерживается. Дополнительные сведения см. в разделе "Установка .NET" в Windows, Linux и macOS.
Вы можете установить конкретную версию с помощью аргумента -Version|--version
. Версию следует указывать в виде номера из трех частей, например 2.1.0
. Если версия не указана, скрипт устанавливает версию latest
.
Скрипты установки не обновляют реестр в Windows. Они просто скачивают двоичные ZIP-файлы и копируют их в папку. Чтобы значения разделов реестра обновлялись, используйте установщики .NET.
Параметры
-Architecture|--architecture <ARCHITECTURE>
Архитектура устанавливаемых двоичных файлов .NET. Возможные значения:
<auto>
,amd64
,x86
arm64
arm
x64
,s390x
ppc64le
и .riscv64
Значение по умолчанию —<auto>
, представляющее текущую используемую архитектуру ОС.-AzureFeed|--azure-feed
Только для внутреннего пользования. Позволяет использовать другое хранилище для скачивания архивов пакета SDK. Этот параметр используется только в том случае, если --no-cdn имеет значение false. Значение по умолчанию —
https://dotnetcli.azureedge.net/dotnet
.-Channel|--channel <CHANNEL>
Указывает исходный канал для установки. Возможны следующие значения:
STS
: последний выпуск стандартной поддержки терминов.LTS
: последний выпуск долгосрочной поддержки.- Версия из двух частей в формате A.B, который представляет конкретный выпуск (например,
3.1
или8.0
). - Трехкомпонентная версия в формате A.B.Cxx, представляющая определенный выпуск пакета SDK (например, 8.0.1xx или 8.0.2xx). Доступно с момента выпуска 5.0.
Параметр
version
переопределяет параметрchannel
, если используется любая версия, отличная отlatest
.Значение по умолчанию —
LTS
. Дополнительные сведения о каналах поддержки .NET см. на странице о политике поддержки .NET.-DryRun|--dry-run
Если задано, скрипт не будет выполнять установку. Вместо этого отобразится командная строка для согласованной установки запрошенной в настоящее время версии .NET CLI. Например, если указать версию
latest
, он отображает ссылку для определенной версии, чтобы эту команду можно было детерминировано использовать в скрипте сборки. Кроме того, он отображает расположение двоичного файла, если вы хотите выполнить скачивание или установку самостоятельно.-FeedCredential|--feed-credential
Используется в качестве строки запроса для добавления в веб-канал Azure. Позволяет изменять URL-адрес для использования учетных записей хранилища BLOB-объектов, не являющихся общедоступными.
--help
Выводит справку для скрипта. Применяется только к скрипту bash. Для PowerShell используется
Get-Help ./dotnet-install.ps1
.-InstallDir|--install-dir <DIRECTORY>
Указывает путь установки. Если такого пути нет, создается каталог. Значение по умолчанию — %LocalAppData%\Microsoft\dotnet в Windows и $HOME/.dotnet в Linux и macOS. Двоичные файлы помещаются непосредственно в этот каталог.
-JSonFile|--jsonfile <JSONFILE>
Указывает путь к файлу global.json, который будет использоваться для определения версии пакета SDK. В файле global.json должно быть значение для
sdk:version
.-NoCdn|--no-cdn
Отключает загрузку из сети доставки содержимого Microsoft Azure (CDN) и напрямую использует некэшированный веб-канал.
-NoPath|--no-path
Если значение задано, папка установки не экспортируется в путь текущего сеанса. По умолчанию скрипт изменит значение PATH, благодаря чему .NET CLI становится доступным сразу после установки.
-ProxyAddress
Если значение задано, установщик использует прокси-сервер для выполнения веб-запросов. (Допустимо только для Windows.)
-ProxyBypassList <LIST_OF_URLS>
Если задано значение
ProxyAddress
, предоставляется список URL-адресов, разделенных запятыми, которые будут обходить прокси-сервер. (Допустимо только для Windows.)-ProxyUseDefaultCredentials
Если задано, установщик использует учетные данные текущего пользователя при использовании адреса прокси-сервера. (Допустимо только для Windows.)
-Quality|--quality <QUALITY>
Скачивает последнюю сборку указанного качества в канале. Возможные значения:
daily
, ,signed
validated
,preview
иGA
. Большинство пользователей должны использоватьdaily
,preview
илиGA
качества.Различные значения качества сигнализируют о различных этапах процесса выпуска установленного пакета SDK или среды выполнения.
daily
: последние сборки пакета SDK или среды выполнения. Они создаются каждый день и не проверяются. Они не рекомендуются для использования в рабочей среде, но часто можно использовать для тестирования определенных функций или исправлений сразу после объединения в продукт. Эти сборки создаются изdotnet/installer
репозитория и поэтому, если вы ищете исправления отdotnet/sdk
вас, необходимо дождаться потока кода и объединить его из пакета SDK к установщику, прежде чем он появится в ежедневной сборке.signed
: подписанные корпорацией Майкрософт сборки, которые не проверяются или не выпускаются публично. Подписанные сборки — это кандидаты на проверку, предварительную версию и выпуск общедоступной версии. Этот уровень качества не предназначен для общедоступного использования.validated
: сборки, которые выполнили внутреннее тестирование, но еще не выпущены в качестве предварительной версии или общедоступной версии. Этот уровень качества не предназначен для общедоступного использования.preview
: ежемесячные общедоступные выпуски следующей версии .NET, предназначенные для общедоступного использования. Не рекомендуется использовать рабочую среду. Предназначено для того, чтобы пользователи могли экспериментировать и тестировать новую основную версию перед выпуском.GA
: последние стабильные выпуски пакета SDK для .NET и среды выполнения. Предназначено для общедоступного использования, а также для поддержки рабочей среды.
Параметр
--quality
работает только в сочетании с--channel
, но неприменимо дляSTS
каналов иLTS
каналов и будет игнорироваться, если используется один из этих каналов.Для установки пакета SDK используйте
channel
значение, которое находится в формате илиA.B.Cxx
вA.B
формате. Для установки среды выполнения используйтеchannel
в форматеA.B
.Не используйте оба
version
quality
параметра. Приquality
указании скрипт определяет правильную версию самостоятельно.Доступно с момента выпуска 5.0.
-Runtime|--runtime <RUNTIME>
Устанавливается только общая среда выполнения, а не весь пакет SDK. Возможны следующие значения:
dotnet
Microsoft.NETCore.App
: общая среда выполнения.aspnetcore
Microsoft.AspNetCore.App
: общая среда выполнения.windowsdesktop
ОбщаяMicrosoft.WindowsDesktop.App
среда выполнения.
--os <OPERATING_SYSTEM>
Указывает операционную систему, для которой устанавливаются средства. Возможные значения:
osx
,macos
,linux
,linux-musl
,freebsd
.Параметр является необязательным и должен использоваться только в том случае, если требуется переопределить операционную систему, обнаруженную сценарием.
-SharedRuntime|--shared-runtime
Примечание.
Этот параметр является устаревшим и может быть удален в будущей версии скрипта. Вместо этого рекомендуется использовать параметр
-Runtime|--runtime
.Устанавливаются только двоичные файлы общей среды выполнения; в противном случае устанавливается весь пакет SDK. Этот параметр эквивалентен указанию
-Runtime|--runtime dotnet
.-SkipNonVersionedFiles|--skip-non-versioned-files
Пропускает установку файлов без версии, таких как dotnet.exe, если они уже существуют.
-UncachedFeed|--uncached-feed
Только для внутреннего пользования. Позволяет использовать другое хранилище для скачивания архивов пакета SDK. Этот параметр используется только в том случае, если --no-cdn имеет значение true.
-KeepZip|--keep-zip
Если задано, скачанный архив ПАКЕТА SDK хранится после установки.
-ZipPath|--zip-path <PATH>
Если задано, скачанный архив ПАКЕТА SDK хранится по указанному пути.
-Verbose|--verbose
Отображает сведения о диагностике.
-Version|--version <VERSION>
Представляет определенную версию сборки. Возможны следующие значения:
latest
: последняя сборка канала (используется с параметром-Channel
).- Версия из трех частей в формате X.Y.Z, который представляет определенную версию сборки. Заменяет параметр
-Channel
. Например:2.0.0-preview2-006120
.
Если не указано,
-Version
по умолчанию принимает значениеlatest
.
Примеры
Установка последней версии с долгосрочной поддержкой (LTS) в расположение по умолчанию:
Windows:
./dotnet-install.ps1 -Channel LTS
Mac OS и Linux:
./dotnet-install.sh --channel LTS
Установите последнюю предварительную версию пакета SDK 6.0.1xx в указанное расположение:
Windows:
./dotnet-install.ps1 -Channel 6.0.1xx -Quality preview -InstallDir C:\cli
Mac OS и Linux:
./dotnet-install.sh --channel 6.0.1xx --quality preview --install-dir ~/cli
Установите версию 6.0.0 общей среды выполнения:
Windows:
./dotnet-install.ps1 -Runtime dotnet -Version 6.0.0
Mac OS и Linux:
./dotnet-install.sh --runtime dotnet --version 6.0.0
Получите скрипт и установите версию 6.0.2 за корпоративным прокси-сервером (только Для Windows):
Invoke-WebRequest 'https://dot.net/v1/dotnet-install.ps1' -Proxy $env:HTTP_PROXY -ProxyUseDefaultCredentials -OutFile 'dotnet-install.ps1'; ./dotnet-install.ps1 -InstallDir '~/.dotnet' -Version '6.0.2' -Runtime 'dotnet' -ProxyAddress $env:HTTP_PROXY -ProxyUseDefaultCredentials;
Получите скрипт и установите однострочные примеры для интерфейса командной строки .NET:
Windows:
# Run a separate PowerShell process because the script calls exit, so it will end the current PowerShell session. &powershell -NoProfile -ExecutionPolicy unrestricted -Command "[Net.ServicePointManager]::SecurityProtocol = [Net.SecurityProtocolType]::Tls12; &([scriptblock]::Create((Invoke-WebRequest -UseBasicParsing 'https://dot.net/v1/dotnet-install.ps1'))) <additional install-script args>"
Mac OS и Linux:
curl -sSL https://dot.net/v1/dotnet-install.sh | bash /dev/stdin <additional install-script args>
Настройка переменных среды
Установка .NET вручную не добавляет системные переменные среды и обычно работает только для сеанса, в котором была установлена .NET. Для операционной системы необходимо задать две переменные среды:
DOTNET_ROOT
Эта переменная устанавливается в папку .NET, например
$HOME/.dotnet
для Linux и macOS, а$HOME\.dotnet
также в PowerShell для Windows.PATH
Эта переменная должна включать как папку
DOTNET_ROOT
, так и папку dotnet/tools пользователя. Как правило, это в$HOME/.dotnet/tools
Linux и macOS, а$HOME\.dotnet\tools
также в PowerShell в Windows.
Совет
Для Linux и macOS используйте echo
команду, чтобы задать переменные в профиле оболочки, например .bashrc:
echo 'export DOTNET_ROOT=$HOME/.dotnet' >> ~/.bashrc
echo 'export PATH=$PATH:$DOTNET_ROOT:$DOTNET_ROOT/tools' >> ~/.bashrc
Удаление
Скрипт удаления отсутствует. Сведения об удалении .NET вручную см. в разделе "Как удалить среду выполнения и пакет SDK для .NET".
Проверка подписи dotnet-install.sh
Проверка подписи является важной мерой безопасности, которая помогает обеспечить подлинность и целостность скрипта. Проверяя подпись скрипта, вы можете убедиться, что он не был изменен и что он поступает из надежного источника.
Ниже приведено пошаговое руководство по проверке подлинности скрипта dotnet-install.sh
с помощью GPG:
- Установка GPG: GPG (GNU Privacy Guard) — это бесплатное и открытое средство для шифрования и подписывания данных. Его можно установить, следуя инструкциям на веб-сайте GPG.
- Импортируйте наш открытый ключ: скачайте файл открытого ключа install-scripts, а затем импортируйте его в ключ GPG, выполнив команду
gpg --import dotnet-install.asc
. - Скачайте файл подписи: файл подписи для скрипта Bash доступен по адресу
https://dot.net/v1/dotnet-install.sig
. Его можно скачать с помощью средства, напримерwget
илиcurl
. - Проверьте подпись: чтобы проверить подпись скрипта Bash, выполните команду
gpg --verify dotnet-install.sig dotnet-install.sh
. При этом будет проверена подпись файла с подписьюdotnet-install.sh
вdotnet-install.sig
файле. - Проверьте результат: если подпись действительна, появится сообщение, содержащее
Good signature from "Microsoft DevUXTeamPrague <devuxteamprague@microsoft.com>"
. Это означает, что скрипт не был изменен и может быть доверенным.
Подготовка среды
Установка GPG и импорт открытого ключа — это одна операция.
sudo apt install gpg
wget https://dot.net/v1/dotnet-install.asc
gpg --import dotnet-install.asc
При успешном выполнении выходные данные должны отображаться следующим образом:
gpg: directory '/home/<user>/.gnupg' created
gpg: keybox '/home/<user>/.gnupg/pubring.kbx' created
gpg: /home/<user>/.gnupg/trustdb.gpg: trustdb created
gpg: key B9CF1A51FC7D3ACF: public key "Microsoft DevUXTeamPrague <devuxteamprague@microsoft.com>" imported
gpg: Total number processed: 1
gpg: imported: 1
Скачивание и проверка
С импортированным ключом теперь можно скачать скрипт и подпись, а затем проверить, соответствует ли скрипт сигнатуре:
wget https://dot.net/v1/dotnet-install.sh
wget https://dot.net/v1/dotnet-install.sig
gpg --verify dotnet-install.sig dotnet-install.sh
При успешном выполнении выходные данные должны отображаться следующим образом:
gpg: Signature made <datetime>
gpg: using RSA key B9CF1A51FC7D3ACF
gpg: Good signature from "Microsoft DevUXTeamPrague <devuxteamprague@microsoft.com>" [unknown]
gpg: WARNING: This key is not certified with a trusted signature!
gpg: There is no indication that the signature belongs to the owner.
Primary key fingerprint: 2B93 0AB1 228D 11D5 D7F6 B6AC B9CF 1A51 FC7D 3ACF
Предупреждение означает, что вы не доверяете открытому ключу в цепочке ключей, но скрипт по-прежнему проверяется. Код выхода, возвращаемый командой проверки, должен быть 0
указан успешно.