Справка по скриптам 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. Существует два скрипта:

Примечание.

.NET собирает данные телеметрии. Дополнительные сведения и о том, как отказаться от этого, см. в разделе Телеметрия пакета SDK для .NET.

Характер использования

Скрипты предназначены для использования в сценариях непрерывной интеграции (CI), если:

  • Пакет SDK должен быть установлен без участия пользователя и без использования прав администратора.

  • Установка пакета SDK не обязательно должна выполняться в ходе нескольких выполнений непрерывной интеграции.

    Типичная последовательность событий:

    • запускается непрерывная интеграция;
    • в ходе непрерывной интеграции устанавливается пакет SDK с помощью одного из этих скриптов;
    • непрерывная интеграция завершается, временные данные, включая установку пакета SDK, удаляются.

Чтобы настроить среду разработки или запустить приложения, используйте установщики вместо этих скриптов.

Мы рекомендуем использовать стабильную версию скриптов.

Источник скриптов находится в репозитории dotnet/install-scripts GitHub.

Поведение скрипта

Оба скрипта выполняют одни и те же функции. Они скачивают файл ZIP или TAR из места сборки CLI, а затем осуществляют установку в расположении по умолчанию или расположении, заданном параметром -InstallDir|--install-dir.

По умолчанию скрипты установки скачивают и устанавливают пакет SDK. Если вы хотите получить только общую среду выполнения, укажите аргумент -Runtime|--runtime.

По умолчанию скрипт добавляет место установки в переменную $PATH для текущего сеанса. Переопределите это поведение по умолчанию, указав аргумент -NoPath|--no-path. Скрипт не задает переменную среды DOTNET_ROOT.

Внимание

Скрипт не добавляет расположение установки в переменную среды пользователя PATH , его необходимо добавить вручную.

Перед запуском скрипта установите все необходимые зависимости.

Вы можете установить конкретную версию с помощью аргумента -Version|--version. Версию следует указывать в виде номера из трех частей, например 2.1.0. Если версия не указана, скрипт устанавливает версию latest.

Скрипты установки не обновляют реестр в Windows. Они просто скачивают двоичные ZIP-файлы и копируют их в папку. Чтобы значения разделов реестра обновлялись, используйте установщики .NET.

Параметры

  • -Architecture|--architecture <ARCHITECTURE>

    Архитектура устанавливаемых двоичных файлов .NET. Допустимые значения <auto>, amd64, x64, x86, arm64, arm, s390x и ppc64le. Значение по умолчанию — <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, , signedvalidated, 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.

    Не используйте оба versionquality параметра. При quality указании скрипт определяет правильную версию самостоятельно.

    Доступно с момента выпуска 5.0.

  • -Runtime|--runtime <RUNTIME>

    Устанавливается только общая среда выполнения, а не весь пакет SDK. Возможны следующие значения:

    • dotnetMicrosoft.NETCore.App: общая среда выполнения.
    • aspnetcoreMicrosoft.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:

  1. Установка GPG: GPG (GNU Privacy Guard) — это бесплатное и открытое средство для шифрования и подписывания данных. Его можно установить, следуя инструкциям на веб-сайте GPG.
  2. Импортируйте наш открытый ключ: скачайте файл открытого ключа install-scripts, а затем импортируйте его в ключ GPG, выполнив командуgpg --import dotnet-install.asc.
  3. Скачайте файл подписи: файл подписи для скрипта Bash доступен по адресу https://dot.net/v1/dotnet-install.sig. Его можно скачать с помощью средства, например wget или curl.
  4. Проверьте подпись: чтобы проверить подпись скрипта Bash, выполните команду gpg --verify dotnet-install.sig dotnet-install.sh. Это проверка подпись файла в сигнатуре dotnet-install.shdotnet-install.sig в файле.
  5. Проверьте результат: если подпись действительна, появится сообщение, содержащее 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указан успешно.

См. также