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

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

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

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

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

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

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

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

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

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

  • .NET 5
  • .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 7:

Скачивание и установка вручную

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

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

Затем извлеките скачанный файл и используйте команду export, чтобы задать для переменной DOTNET_ROOT расположение извлеченной папки, а затем проверьте включение .NET в переменную PATH. После этого команды .NET CLI станут доступны в терминале.

Кроме того, после скачивания двоичного файла .NET можно выполнить следующие команды из каталога, в котором сохранен файл, для извлечения среды выполнения. После этого команды .NET CLI также станут доступны в терминале, и будут заданы нужные переменные среды. Обязательно измените значение DOTNET_FILE на имя скачанного двоичного файла:

DOTNET_FILE=dotnet-sdk-7.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

Совет

Приведенные выше команды export сделают команды .NET CLI доступными только для сеанса терминала, в котором производился запуск.

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

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

Измените соответствующий исходный файл оболочки и добавьте :$HOME/dotnet в конец существующего оператора PATH. Если оператор PATH не указан, добавьте новую строку с export PATH=$PATH:$HOME/dotnet.

Кроме того, добавьте export DOTNET_ROOT=$HOME/dotnet в конец файла.

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

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

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

Поддерживаемые функции

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

Версия .NET Architecture SDK Параметры выполнения Конфликт путей
7 ARM64 Да Да Нет
7 X64 Да Да Нет
6 ARM64 Да Да Нет
6 X64 Да Да Нет
3.1 ARM64 нет Нет Н/Д
3.1 X64 нет Да Да

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

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

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

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

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

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

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

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

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

Версия пакета SDK для .NET Версия Visual Studio
7,0 Visual Studio 2022 для Mac 17.4 или более поздней версии.
6,0 Visual Studio 2022 для Mac 17.0 предварительной версии 3 или более поздней.
3.1 Visual Studio 2019 для Mac версии 8.4 или более поздней.

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

Установка вместе с 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 6. Вы можете выбрать конкретный выпуск, указав параметр channel. Включите параметр runtime для установки среды выполнения. В противном случае сценарий устанавливает пакет SDK.

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

./dotnet-install.sh --channel 7.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 и Примеры.

Дальнейшие действия