Установка .NET в macOS

В этой статье описано, как установить .NET в macOS. .NET состоит из среды выполнения и пакета SDK. Среда выполнения используется для запуска приложения .NET и может быть не включена в приложение. Пакет SDK используется для создания приложений и библиотек .NET. Среда выполнения .NET всегда устанавливается вместе с пакетом SDK.

Последняя версия .NET — 8.

Поддерживаемые выпуски

Существует два типа поддерживаемых выпусков: выпуски долгосрочной поддержки (LTS) и выпуски стандартной поддержки терминов (STS). Качество всех выпусков одинаково. Единственное различие заключается в продолжительности поддержки. Выпуски LTS получают бесплатную поддержку и исправления в течение трех лет. Выпуски STS получают бесплатную поддержку и исправления в течение 18 месяцев. Дополнительные сведения см. в статье о политике поддержки .NET.

В следующей таблице приведен список поддерживаемых в настоящее время выпусков .NET и версий macOS, на которые они поддерживаются:

Операционная система .NET 8 (LTS) .NET 7 (STS) .NET 6 (LTS)
macOS 14.0 "Сонома" ✔️ 8.0 ✔️ 7.0 ✔️ 6.0
macOS 13.0 "Ventura" ✔️ 8.0 ✔️ 7.0 ✔️ 6.0
macOS 12.0 "Monterey" ✔️ 8.0 ✔️ 7.0 ✔️ 6.0
macOS 11.0 "Big Sur" ✔️ 7.0 ✔️ 6.0
macOS 10.15 "Catalina" ✔️ 7.0 ✔️ 6.0

Полный список версий .NET и их жизненного цикла поддержки см . в политике поддержки .NET.

Неподдерживаемые выпуски

Следующие версии .NET больше не поддерживаются (❌).

  • .NET 5
  • .NET Core 3.1.
  • .NET Core 3.0
  • .NET Core 2.2
  • .NET Core 2.1
  • .NET Core 2.0;

Сведения о среде выполнения

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

В macOS можно установить две разные среды выполнения:

  • Среда выполнения ASP.NET Core
    Используется для запуска приложений ASP.NET Core. Включает среду выполнения .NET.

  • Среда выполнения .NET
    Простейшая среда выполнения, в состав которой не входят какие-либо другие среды выполнения. Чтобы обеспечить максимальный уровень совместимости с приложениями .NET, настоятельно рекомендуется устанавливать среду выполнения ASP.NET Core.

Сведения о пакете SDK

Пакет SDK используется для создания и публикации приложений и библиотек .NET. Установка пакета SDK включает обе среды выполнения: ASP.NET Core и .NET.

Заверение

Начиная с macOS Catalina (версия 10.15), все программное обеспечение, созданное после 1 июня 2019 г., распределенное с идентификатором разработчика, должно быть нотировано. Это требование относится к среде выполнения .NET, пакету SDK для .NET и программному обеспечению, созданному с помощью .NET.

Среда выполнения и установщики пакета SKD для .NET заверены с 18 февраля 2020 г. Более ранние версии не заверены. При запуске незаверенного приложения появится ошибка, аналогичная следующей:

Оповещение о заверении macOS Catalina

Дополнительные сведения о том, как принудительное заверение влияет на .NET (и ваши приложения .NET), см. в разделе Работа с заверением macOS Catalina.

libgdiplus

Приложения .NET, которые используют сборку System.Drawing.Common, требуют установки libgdiplus.

Легко получить libgdiplus можно с помощью диспетчера пакетов Homebrew ("brew") для macOS. После установки brew установите libgdiplus, выполнив следующие команды в окне терминала (аналог командной строки):

brew update
brew install mono-libgdiplus

Автоматическая установка

в macOS есть автономные установщики, которые можно использовать для установки .NET:

Установка вручную

В качестве альтернативы установщикам macOS для .NET можно скачать и вручную установить пакет SDK и среду выполнения. Установка вручную как правило выполняется в рамках тестирования непрерывной интеграции. В большинстве случаев разработчикам и пользователям рекомендуется использовать установщик.

Скачайте двоичный выпуск для пакета SDK или среды выполнения на одном из следующих сайтов. Пакет SDK для .NET включает соответствующую среду выполнения:

Извлеките скачанный файл и используйте export команду, чтобы задать DOTNET_ROOT расположение извлеченной папки, а затем убедитесь, что .NET находится в PATH. DOTNET_ROOT Экспорт делает команды .NET CLI доступными в терминале. Дополнительные сведения о переменных среды .NET см. в статье .NET SDK и переменные среды CLI.

Различные версии .NET можно извлечь в одну и ту же папку, которая сосуществует параллельно.

Пример

Следующие команды используют Bash для задания переменной DOTNET_ROOT среды текущего рабочего каталога, за которым следует .dotnet. Этот каталог создается, если он не существует. Переменная DOTNET_FILE среды — это имя файла двоичного выпуска .NET, который требуется установить. Этот файл извлекается в DOTNET_ROOT каталог. В DOTNET_ROOT переменную среды добавляются PATH каталог и его tools подкаталог.

Внимание

При выполнении этих команд не забудьте изменить DOTNET_FILE значение на имя загруженного двоичного файла .NET.

DOTNET_FILE=dotnet-sdk-8.0.100-osx-x64.tar.gz
export DOTNET_ROOT=$(pwd)/.dotnet

mkdir -p "$DOTNET_ROOT" && tar zxf "$DOTNET_FILE" -C "$DOTNET_ROOT"

export PATH=$PATH:$DOTNET_ROOT

В одной папке можно установить несколько версий .NET.

Вы также можете установить .NET в домашний каталог, определяемый переменной HOME или ~ путем:

export DOTNET_ROOT=$HOME/.dotnet

Проверка скачанных двоичных файлов

После скачивания установщика убедитесь, что файл не был изменен или поврежден. Вы можете проверить проверка сум на компьютере, а затем сравнить его с тем, что было сообщено на веб-сайте скачивания.

При скачивании установщика или двоичного файла с официальной страницы скачивания отображается проверка sum для файла. Нажмите кнопку "Копировать", чтобы скопировать значение проверка sum в буфер обмена.

Страница загрузки .NET с проверка sum

sha512sum Используйте команду, чтобы распечатать проверка sum файла, который вы скачали. Например, следующая команда сообщает проверка sum файла dotnet-sdk-8.0.100-linux-x64.tar.gz:

$ sha512sum dotnet-sdk-8.0.100-linux-x64.tar.gz
13905ea20191e70baeba50b0e9bbe5f752a7c34587878ee104744f9fb453bfe439994d38969722bdae7f60ee047d75dda8636f3ab62659450e9cd4024f38b2a5  dotnet-sdk-8.0.100-linux-x64.tar.gz

Сравните проверка sum со значением, предоставленным сайтом скачивания.

Внимание

Несмотря на то, что файл Linux показан в этих примерах, эта информация одинаково применяется к macOS.

Использование файла проверка sum для проверки

Заметки о выпуске .NET содержат ссылку на файл проверка sum, который можно использовать для проверки скачаемого файла. Ниже описано, как скачать файл проверка sum и проверить двоичный файл установки .NET:

  1. Страница заметок о выпуске для .NET 8 на сайте GitHub https://github.com/dotnet/core/tree/main/release-notes/8.0 содержит раздел с именем "Выпуски". Таблица в этом разделе ссылается на скачиваемые файлы и файлы проверка sum для каждого выпуска .NET 8:

    Таблица версий заметок о выпуске github для .NET

  2. Выберите ссылку для скачаемой версии .NET. Предыдущий раздел использовал пакет SDK для .NET 8.0.100, который находится в выпуске .NET 8.0.0.

  3. На странице выпуска можно увидеть версию пакета SDK для .NET и .NET, а также ссылку на файл проверка sum:

    Таблица скачивания с проверка сумами для .NET

  4. Скопируйте ссылку на файл проверка sum.

  5. Используйте следующий скрипт, но замените ссылку, чтобы скачать соответствующий файл проверка sum:

    curl -O https://dotnetcli.blob.core.windows.net/dotnet/checksums/8.0.0-sha.txt
    
  6. С проверка суммом файлом и файлом выпуска .NET, скачанным в тот же каталог, используйте sha512sum -c {file} --ignore-missing команду для проверки скачаированного файла.

    При прохождении проверки вы увидите файл, напечатанный с состоянием OK :

    $ sha512sum -c 8.0.0-sha.txt --ignore-missing
    dotnet-sdk-8.0.100-linux-x64.tar.gz: OK
    

    Если файл помечен как FAILED, скачанный файл недействителен и не должен использоваться.

    $ sha512sum -c 8.0.0-sha.txt --ignore-missing
    dotnet-sdk-8.0.100-linux-x64.tar.gz: FAILED
    sha512sum: WARNING: 1 computed checksum did NOT match
    sha512sum: 8.0.0-sha.txt: no file was verified
    

Настройка системных переменных среды

Если вы использовали инструкции в разделе примера установки вручную, переменные применяются только к текущему сеансу терминала. Добавьте их в профиль оболочки. Существует множество различных оболочк для macOS, и каждый из них имеет другой профиль. Например:

  • Оболочка Bash: ~/.profile, /etc/profile
  • Оболочка Korn: ~/.kshrc или .profile
  • Оболочка Z: ~/.zshrc или .zprofile

Задайте следующие две переменные среды в профиле оболочки:

  • DOTNET_ROOT

    Эта переменная установлена в папке .NET, например $HOME/.dotnet:

    export DOTNET_ROOT=$HOME/.dotnet
    
  • PATH

    Эта переменная должна включать как папку, DOTNET_ROOT так и папку DOTNET_ROOT/tools :

    export PATH=$PATH:$DOTNET_ROOT:$DOTNET_ROOT/tools
    

Компьютеры Mac на основе процессоров Arm

В следующих разделах описываются факторы, которые следует учитывать при установке .NET на компьютере Mac на основе процессора Arm.

Что поддерживается

В следующей таблице описаны версии .NET, поддерживаемые на компьютерах Mac на основе процессоров Arm:

Версия .NET Архитектура SDK Параметры выполнения Конфликт путей
8 Arm64 Да Да Нет
8 x64 Да Да Нет
7 Arm64 Да Да Нет
7 x64 Да Да Нет
6 Arm64 Да Да Нет
6 x64 Да Да Нет

Начиная с .NET 6 версии пакета SDK для .NET 64 и Arm64 существуют независимо друг от друга. При выпуске новой версии нужно обновить каждую установку.

Различия в путях

На компьютерах Mac на основе процессоров Arm все версии .NET для Arm64 устанавливаются в обычную папку /usr/local/share/dotnet/. Однако при установке пакета SDK для .NET версии x64 она устанавливается в папку /usr/local/share/dotnet/x64/dotnet/dotnet/ .

Конфликты путей

Начиная с .NET 6 пакет SDK x64 .NET устанавливается в собственный каталог, как описано в предыдущем разделе. Это позволяет существовать на одном компьютере версии пакета SDK для .NET для Arm64 и x64. Однако любой пакет SDK x64 до .NET 6 не поддерживается и устанавливается в то же расположение, что и версия Arm64 , папка /usr/local/share/dotnet/ . Если вы хотите установить неподдерживаемый пакет SDK для x64, необходимо сначала удалить версию Arm64. Наоборот, необходимо удалить неподдерживаемый пакет SDK x64 для установки версии Arm64.

Переменные пути

Переменные среды, добавляющие .NET в системный путь, например PATH переменную, могут быть изменены, если установлены версии пакета SDK для .NET 64 и Arm64. Кроме того, некоторые средства используют переменную среды DOTNET_ROOT, которую также необходимо изменить, чтобы она указывала на соответствующую папку установки пакета SDK для .NET 6.

Установка с помощью Visual Studio для Mac

Visual Studio для Mac устанавливает пакет SDK для .NET, если выбрана рабочая нагрузка .NET. Сведения о начале разработки .NET в macOS см. в статье "Установка Visual Studio 2022 для Mac".

Внимание

Visual Studio для Mac уходит в отставку. Дополнительные сведения см. в статье "Что происходит с Visual Studio для Mac?".

Версия пакета SDK для .NET Версия Visual Studio
8.0 Visual Studio 2022 для Mac 17.6.1 или более поздней версии. (Доступно только в качестве предварительной версии функции.)
7.0 Visual Studio 2022 для Mac 17.4 или более поздней версии.
6,0 Visual Studio 2022 для Mac 17.0 или более поздней версии.

macOS Visual Studio 2022 для Mac с выбранной рабочей нагрузкой .NET.

Внимание

Корпорация Майкрософт объявила о прекращении работы Visual Studio для Mac. Visual Studio для Mac больше не будет поддерживаться с 31 августа 2024 г. Ниже представлены возможные альтернативы.

  • Visual Studio Code с пакетом разработки C# и связанными расширениями, такими как .NET MAUI и Unity.
  • Visual Studio, запущенная в Windows на виртуальной машине Mac.
  • Visual Studio, запущенная в Windows на виртуальной машине в облаке.

Дополнительные сведения см. в Visual Studio для Mac объявлении о выходе на пенсию.

Установка вместе с Visual Studio Code

Visual Studio Code — это эффективный и облегченный редактор исходного кода, который работает на компьютере. Visual Studio Code доступен для Windows, macOS и Linux.

Хотя Visual Studio Code не поставляется с автоматическим установщиком .NET, таким как Visual Studio, добавление поддержки .NET не вызывает затруднений.

  1. Скачайте и установите Visual Studio Code.
  2. Скачайте и установите пакет SDK для .NET.
  3. Установите расширение C# из Marketplace для Visual Studio Code.

Установка с помощью функции автоматизации Bash

Сценарии dotnet-install используются для автоматизации установок среды выполнения и их осуществления без прав администратора. Вы можете скачать сценарий со страницы справочника по сценариям dotnet-install.

Сценарий по умолчанию используется для установки последней долгосрочной версии поддержки (LTS), которая является .NET 8. Вы можете выбрать конкретный выпуск, указав параметр channel. Включите параметр runtime для установки среды выполнения. В противном случае сценарий устанавливает пакет SDK.

Следующая команда устанавливает среду выполнения ASP.NET Core для обеспечения максимальной совместимости. Среда выполнения ASP.NET Core также включает в себя стандартную среду выполнения .NET.

./dotnet-install.sh --channel 8.0 --runtime aspnetcore

Docker

Контейнеры обеспечивают простой способ изоляции приложения от остальной части основной системы. Контейнеры на одном компьютере совместно использую только ядро, а также используют ресурсы, которые передаются в приложение.

.NET можно выполнять в контейнере Docker. Официальные образы Docker для .NET публикуются в реестре контейнеров Microsoft (MCR), и доступ к ним можно получить в репозитории Microsoft .NET Docker Hub. Каждый репозиторий содержит рабочие образы для разных сочетаний .NET (пакета SDK или среды выполнения) и операционной системы.

Корпорация Майкрософт предоставляет образы, которые предназначены для конкретных сценариев. Например репозиторий ASP.NET Core содержит образы, которые предназначены для запуска приложений ASP.NET Core в рабочей среде.

Дополнительные сведения об использовании .NET в контейнере Docker см. в статьях Введение в .NET и Docker и Примеры.

Следующие шаги