Ескертпе
Бұл бетке кіру үшін қатынас шегін айқындау қажет. Жүйеге кіруді немесе каталогтарды өзгертуді байқап көруге болады.
Бұл бетке кіру үшін қатынас шегін айқындау қажет. Каталогтарды өзгертуді байқап көруге болады.
Примечание.
Поведение скрипта установки изменилось. Он загружает .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указан успешно.