Заметка
Доступ к этой странице требует авторизации. Вы можете попробовать войти в систему или изменить каталог.
Доступ к этой странице требует авторизации. Вы можете попробовать сменить директорию.
Примечание.
Поведение скрипта установки изменилось. Он загружает .NET из новых сетевых расположений. Дополнительные сведения см. в разделе Критически важные: ссылки на установку .NET изменяются.
Имя.
dotnet-install.ps1
|
dotnet-install.sh — скрипт, используемый для установки общей среды выполнения и пакета SDK для .NET.
Краткие сведения
Виндоус:
dotnet-install.ps1 [-Architecture <ARCHITECTURE>] [-AzureFeed]
[-Channel <CHANNEL>] [-DryRun] [-FeedCredential]
[-InstallDir <DIRECTORY>] [-JSonFile <JSONFILE>]
[-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-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.
Описание
Скрипты 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,x64x86arm64arm,s390xppc64leи .riscv64Значение по умолчанию —<auto>, представляющее текущую используемую архитектуру ОС.-AzureFeed|--azure-feedТолько для внутреннего пользования. Позволяет использовать другое хранилище для скачивания архивов пакета SDK. Значение по умолчанию —
https://builds.dotnet.microsoft.com/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.-NoPath|--no-pathЕсли значение задано, папка установки не экспортируется в путь текущего сеанса. По умолчанию скрипт изменит значение PATH, благодаря чему .NET CLI становится доступным сразу после установки.
-ProxyAddressЕсли значение задано, установщик использует прокси-сервер для выполнения веб-запросов. (Допустимо только для Windows.)
-ProxyBypassList <LIST_OF_URLS>Если задано значение
ProxyAddress, предоставляется список URL-адресов, разделенных запятыми, которые будут обходить прокси-сервер. (Допустимо только для Windows.)-ProxyUseDefaultCredentialsЕсли задано, установщик использует учетные данные текущего пользователя при использовании адреса прокси-сервера. (Допустимо только для Windows.)
-Quality|--quality <QUALITY>Скачивает последнюю сборку указанного качества в канале. Возможные значения:
daily,previewиGA.Различные значения качества сигнализируют о различных этапах процесса выпуска установленного пакета SDK или среды выполнения.
-
daily: последние сборки пакета SDK или среды выполнения. Они создаются каждый день и не проверяются. Они не рекомендуются для использования в рабочей среде, но часто можно использовать для тестирования определенных функций или исправлений сразу после объединения в продукт. Эти сборки создаются изdotnet/installerрепозитория и поэтому, если вы ищете исправления отdotnet/sdkвас, необходимо дождаться потока кода и объединить его из пакета SDK к установщику, прежде чем он появится в ежедневной сборке. -
preview: ежемесячные общедоступные выпуски следующей версии .NET, предназначенные для общедоступного использования. Не рекомендуется использовать рабочую среду. Предназначено для того, чтобы пользователи могли экспериментировать и тестировать новую основную версию перед выпуском. -
GA: последние стабильные выпуски пакета SDK для .NET и среды выполнения. Предназначено для общедоступного использования, а также для поддержки рабочей среды.
Параметр
--qualityработает только в сочетании с--channel, но неприменимо дляSTSканалов иLTSканалов и будет игнорироваться, если используется один из этих каналов.Для установки пакета SDK используйте
channelзначение, которое находится в формате илиA.BвA.B.Cxxформате. Для установки среды выполнения используйте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. Этот параметр перезаписывает
-AzureFeed|--azure-feed.-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) в расположение по умолчанию:
Виндоус:
./dotnet-install.ps1 -Channel LTSMac OS и Linux:
./dotnet-install.sh --channel LTSУстановите последнюю предварительную версию пакета SDK 6.0.1xx в указанное расположение:
Виндоус:
./dotnet-install.ps1 -Channel 6.0.1xx -Quality preview -InstallDir C:\cliMac OS и Linux:
./dotnet-install.sh --channel 6.0.1xx --quality preview --install-dir ~/cliУстановите версию 6.0.0 общей среды выполнения:
Виндоус:
./dotnet-install.ps1 -Runtime dotnet -Version 6.0.0Mac 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:
Виндоус:
# 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>Установите несколько версий, не перезаписав
dotnetдвоичные файлы из предыдущих установок.Если вы устанавливаете пакеты SDK для .NET или среду выполнения .NET из более ранней версии, необходимо использовать
--skip-non-versioned-files, чтобы файлы unversioned из более ранней версии не перезаписывалиdotnetодни и те же файлы из более новой версии.:~ $ ./dotnet-install.sh --channel 9.0 --install-dir local-dotnet # installs the latest 9 SDK to the specified directory dotnet-install: Attempting to download using aka.ms link https://builds.dotnet.microsoft.com/dotnet/Sdk/9.0.303/dotnet-sdk-9.0.303-linux-x64.tar.gz dotnet-install: Remote file https://builds.dotnet.microsoft.com/dotnet/Sdk/9.0.303/dotnet-sdk-9.0.303-linux-x64.tar.gz size is 218004272 bytes. dotnet-install: Extracting archive from https://builds.dotnet.microsoft.com/dotnet/Sdk/9.0.303/dotnet-sdk-9.0.303-linux-x64.tar.gz dotnet-install: Downloaded file size is 218004272 bytes. dotnet-install: The remote and local file sizes are equal. dotnet-install: Installed version is 9.0.303 dotnet-install: Adding to current process PATH: `$HOME/local-dotnet`. Note: This change will be visible only when sourcing script. dotnet-install: Note that the script does not resolve dependencies during installation. dotnet-install: To check the list of dependencies, go to https://learn.microsoft.com/dotnet/core/install, select your operating system and check the "Dependencies" section. dotnet-install: Installation finished successfully. :~ $ ./local-dotnet/dotnet --list-runtimes # see what runtimes we have available Microsoft.AspNetCore.App 9.0.7 [$HOME/local-dotnet/shared/Microsoft.AspNetCore.App] Microsoft.NETCore.App 9.0.7 [$HOME/local-dotnet/shared/Microsoft.NETCore.App] :~ $ ./local-dotnet/dotnet --list-sdks # see what SDKs we have available 9.0.303 [$HOME/local-dotnet/sdk] :~ $ ./dotnet-install.sh --channel 8.0 --install-dir local-dotnet --skip-non-versioned-files # install the 8 SDK to the same place, but keep the 9 dotnet binaries dotnet-install: Attempting to download using aka.ms link https://builds.dotnet.microsoft.com/dotnet/Sdk/8.0.412/dotnet-sdk-8.0.412-linux-x64.tar.gz dotnet-install: Remote file https://builds.dotnet.microsoft.com/dotnet/Sdk/8.0.412/dotnet-sdk-8.0.412-linux-x64.tar.gz size is 216096947 bytes. dotnet-install: Extracting archive from https://builds.dotnet.microsoft.com/dotnet/Sdk/8.0.412/dotnet-sdk-8.0.412-linux-x64.tar.gz dotnet-install: Downloaded file size is 216096947 bytes. dotnet-install: The remote and local file sizes are equal. dotnet-install: Installed version is 8.0.412 dotnet-install: Adding to current process PATH: `$HOME/local-dotnet`. Note: This change will be visible only when sourcing script. dotnet-install: Note that the script does not resolve dependencies during installation. dotnet-install: To check the list of dependencies, go to https://learn.microsoft.com/dotnet/core/install, select your operating system and check the "Dependencies" section. dotnet-install: Installation finished successfully. :~ $ ./local-dotnet/dotnet --list-runtimes # we should have 8 and 9 Runtimes now Microsoft.AspNetCore.App 8.0.18 [$HOME/local-dotnet/shared/Microsoft.AspNetCore.App] Microsoft.AspNetCore.App 9.0.7 [$HOME/local-dotnet/shared/Microsoft.AspNetCore.App] Microsoft.NETCore.App 8.0.18 [$HOME/local-dotnet/shared/Microsoft.NETCore.App] Microsoft.NETCore.App 9.0.7 [$HOME/local-dotnet/shared/Microsoft.NETCore.App] :~ $ ./local-dotnet/dotnet --list-sdks # we should have 2 SDKs now 8.0.412 [$HOME/local-dotnet/sdk] 9.0.303 [$HOME/local-dotnet/sdk]
Настройка переменных среды
Установка .NET вручную не добавляет системные переменные среды и обычно работает только для сеанса, в котором была установлена .NET. Для операционной системы необходимо задать две переменные среды:
DOTNET_ROOTЭта переменная устанавливается в папку .NET, например
$HOME/.dotnetдля Linux и macOS, а$HOME\.dotnetтакже в PowerShell для Windows.PATHЭта переменная должна включать как папку
DOTNET_ROOT, так и папку dotnet/tools пользователя. Как правило, это в$HOME/.dotnet/toolsLinux и 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указан успешно.