Installare .NET in macOS

Questo articolo illustra come installare .NET in macOS. .NET è costituito dal runtime e dall'SDK. Il runtime viene usato per eseguire un'app .NET e potrebbe essere o non essere incluso nell'app. L'SDK viene usato per creare app e librerie .NET. Il runtime .NET viene sempre installato con l'SDK.

La versione più recente di .NET è 8.

Versioni supportate

Esistono due tipi di versioni supportate: versioni Long Term Support (LTS) e versioni Standard Term Support (STS). La qualità di tutte le versioni è identica. L'unica differenza consiste nella lunghezza del supporto. Le versioni LTS ottengono il supporto gratuito e patch per tre anni. Le versioni STS ottengono supporto gratuito e patch per 18 mesi. Per altre informazioni, vedere i Criteri di supporto .NET.

La tabella seguente contiene un elenco delle release di .NET attualmente supportate e delle versioni di macOS in cui sono supportate:

Sistema operativo .NET 8 (LTS) .NET 7 (STS) .NET 6 (LTS)
macOS 14.0 "Sonoma" ✔️ 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

Per un elenco completo delle versioni di .NET e del rispettivo ciclo di vita del supporto, vedere i Criteri di supporto .NET.

Versioni non supportate

Le versioni seguenti di .NET non sono ❌ più supportate:

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

Informazioni sul runtime

Il runtime viene usato per eseguire le app create con .NET. Quando un autore di app pubblica un'app, può includere il runtime con l'app. Se non include il runtime, l'utente dovrà installarlo.

Esistono due runtime diversi che è possibile installare in macOS:

  • Runtime di ASP.NET Core
    Esegue app ASP.NET Core. Include il runtime .NET.

  • Runtime .NET
    Questo runtime è il runtime più semplice e non include altri runtime. È consigliabile installare il Runtime di ASP.NET Core per garantire la migliore compatibilità con le app .NET.

Informazioni su SDK

L'SDK viene usato per compilare e pubblicare app e librerie .NET. L'installazione dell'SDK include entrambi i runtime, ovvero ASP.NET Core e .NET.

Autenticazione

A partire da macOS Catalina (versione 10.15), tutto il software compilato dopo il 1° giugno 2019 distribuito con ID sviluppatore deve essere autenticato. Questo requisito si applica al runtime .NET, a .NET SDK e al software creato con .NET.

I programmi di installazione di runtime e SDK per .NET sono stati autenticati a partire dal 18 febbraio 2020. Le versioni rilasciate in precedenza non sono autenticate. Se si esegue un'app non autenticata, verrà visualizzato un errore simile all'immagine seguente:

Avviso di notarizzazione di macOS Catalina

Per altre informazioni sul modo in cui l'autenticazione forzata influisce su .NET e sulle app .NET, vedere Uso dell'autenticazione di macOS Catalina.

libgdiplus

Le applicazioni .NET che usano l'assembly System.Drawing.Common richiedono l'installazione di libgdiplus.

È possibile ottenere facilmente libgdiplus tramite il sistema di gestione pacchetti Homebrew ("brew") per macOS. Dopo aver installato brew, installare libgdiplus eseguendo i comandi seguenti da un prompt (dei comandi) del terminale:

brew update
brew install mono-libgdiplus

Installazione automatica

macOS include programmi di installazione autonomi che possono essere usati per installare .NET:

Installazione manuale

In alternativa ai programmi di installazione di macOS per .NET, è possibile scaricare e installare manualmente l'SDK e il runtime. L'installazione manuale viene in genere eseguita come parte dei test di integrazione continua. Per uno sviluppatore o un utente, in genere è preferibile usare un programma di installazione.

Scaricare una versione binaria per l'SDK o il runtime da uno dei siti seguenti. .NET SDK include il runtime corrispondente:

Estrarre il file scaricato e usare il comando export per impostare DOTNET_ROOT sul percorso della cartella estratta e quindi assicurarsi che .NET sia in PATH. L'esportazione di DOTNET_ROOT rende disponibili i comandi dell'interfaccia della riga di comando di .NET nel terminale. Per altre informazioni sulle variabili di ambiente .NET, vedere Variabili di ambiente di .NET SDK e dell'interfaccia della riga di comando.

È possibile estrarre nella stessa cartella versioni diverse di .NET, che coesistono affiancate.

Esempio

I comandi seguenti usano Bash per impostare la variabile di ambiente DOTNET_ROOT sulla directory di lavoro corrente seguita da .dotnet. Se la directory non esiste, verrà creata. La variabile di ambiente DOTNET_FILE è il nome file della versione binaria di .NET da installare. Questo file viene estratto nella directory DOTNET_ROOT. Sia la directory DOTNET_ROOT che la relativa sottodirectory tools vengono aggiunte alla variabile di ambiente PATH.

Importante

Se si eseguono questi comandi, ricordarsi di modificare il valore DOTNET_FILE nel nome del file binario .NET scaricato.

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

È possibile installare più versioni di .NET nella stessa cartella.

È anche possibile installare .NET nella home directory identificata dalla variabile HOME o dal percorso ~:

export DOTNET_ROOT=$HOME/.dotnet

Verificare i file binari scaricati

Dopo aver scaricato un programma di installazione, verificare che il file non sia stato modificato o danneggiato. È possibile verificare il checksum nel computer e quindi confrontarlo con ciò che è stato segnalato nel sito Web di download.

Quando si scarica un programma di installazione o un file binario da una pagina di download ufficiale, viene visualizzato il checksum per il file. Selezionare il pulsante Copia per copiare il valore del checksum negli Appunti.

Pagina di download di .NET con checksum

Usare il comando sha512sum per stampare il checksum del file scaricato. Ad esempio, il comando seguente restituisce il checksum del file 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

Confrontare il checksum con il valore fornito dal sito di download.

Importante

Anche se in questi esempi viene mostrato un file Linux, le stesse informazioni si applicano a macOS.

Usare un file di checksum per la convalida

Le note sulla versione di .NET contengono un collegamento a un file di checksum che è possibile usare per convalidare il file scaricato. I passaggi seguenti descrivono come scaricare il file di checksum e convalidare un file binario di installazione di .NET:

  1. La pagina delle note sulla versione per .NET 8 su GitHub all'indirizzo https://github.com/dotnet/core/tree/main/release-notes/8.0 contiene una sezione denominata Releases. La tabella in questa sezione contiene collegamenti ai download e ai file di checksum per ogni versione di .NET 8:

    Tabella delle note sulla versione di GitHub per .NET

  2. Selezionare il collegamento per la versione di .NET scaricata. La sezione precedente usa .NET SDK 8.0.100, che si trova nella versione .NET 8.0.0.

  3. Nella pagina della versione sono visibili la versione del runtime di .NET e di .NET SDK e un collegamento al file di checksum:

    Tabella di download con checksum per .NET

  4. Copiare il collegamento al file di checksum.

  5. Usare lo script seguente, ma sostituire il collegamento per scaricare il file di checksum appropriato:

    curl -O https://dotnetcli.blob.core.windows.net/dotnet/checksums/8.0.0-sha.txt
    
  6. Con il file di checksum e il file della versione di .NET scaricati nella stessa directory, usare il comando sha512sum -c {file} --ignore-missing per convalidare il file scaricato.

    Quando la convalida viene superata, viene visualizzato il file stampato con lo stato OK:

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

    Se il file viene contrassegnato come FAILED, il file scaricato non è valido e non deve essere usato.

    $ 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
    

Impostare le variabili di ambiente a livello di sistema

Se sono state usate le istruzioni nella sezione Esempio di installazione manuale, le variabili impostate si applicano solo alla sessione del terminale corrente. Aggiungerle al profilo della shell. Sono disponibili molte shell diverse per macOS e ognuna ha un profilo diverso. Ad esempio:

  • Shell Bash: ~/.profile, /etc/profile
  • Shell Korn: ~/.kshrc o .profile
  • Shell Z: ~/.zshrc o .zprofile

Impostare le due variabili di ambiente seguenti nel profilo della shell:

  • DOTNET_ROOT

    Questa variabile è impostata sulla cartella in cui è stato installato .NET, ad esempio $HOME/.dotnet:

    export DOTNET_ROOT=$HOME/.dotnet
    
  • PATH

    Questa variabile deve includere sia la cartella DOTNET_ROOT sia la cartella DOTNET_ROOT/tools:

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

Mac basati su Arm

Le sezioni seguenti descrivono gli aspetti da considerare durante l'installazione di .NET in un Mac basato su Arm.

Che cosa viene supportato?

La tabella seguente descrive le versioni di .NET supportate in un Mac basato su Arm:

Versione .NET Architettura SDK esecuzione Conflitto di percorso
8 Arm64 No
8 x64 No
7 Arm64 No
7 x64 No
6 Arm64 No
6 x64 No

A partire da .NET 6, le versioni x64 e Arm64 di .NET SDK esistono indipendentemente l'una dall'altra. Se viene rilasciata una nuova versione, ogni installazione deve essere aggiornata.

Differenze di percorso

In un Mac basato su Arm tutte le versioni Arm64 di .NET vengono installate nella normale cartella /usr/local/share/dotnet/. Tuttavia, quando si installa la versione x64 di .NET SDK, tale versione viene installata nella cartella /usr/local/share/dotnet/x64/dotnet/.

Conflitti di percorso

A partire da .NET 6, la versione x64 di .NET SDK viene installata nella propria directory, come descritto nella sezione precedente. Ciò consente la coesistenza delle versioni Arm64 e x64 di .NET SDK nello stesso computer. Tuttavia, qualsiasi SDK x64 precedente a .NET 6 non è supportato e viene installato nella stessa posizione della versione Arm64, ovvero la cartella /usr/local/share/dotnet/. Se si vuole installare un SDK x64 non supportato, è prima di tutto necessario disinstallare la versione Arm64. Analogamente, è necessario disinstallare l'SDK x64 non supportato per installare la versione Arm64.

Variabili di percorso

Le variabili di ambiente che aggiungono .NET al percorso di sistema, ad esempio la variabile PATH, potrebbero dover essere modificate se sono installate entrambe le versioni x64 e Arm64 di .NET 6 SDK. Alcuni strumenti si basano inoltre sulla variabile di ambiente DOTNET_ROOT, che dovrebbe essere a sua volta aggiornata per puntare alla cartella di installazione appropriata di .NET 6 SDK.

Eseguire l'installazione con Visual Studio per Mac

Visual Studio per Mac installa .NET SDK quando viene selezionato il carico di lavoro .NET. Per iniziare a usare lo sviluppo .NET in macOS, vedere Installare Visual Studio 2022 per Mac.

Importante

Visual Studio per Mac in fase di ritiro. Per altre informazioni, vedere What's happening to Visual Studio per Mac?.

Versione di .NET SDK Versione di Visual Studio
8.0 Visual Studio 2022 per Mac 17.6.1 o versione successiva. Disponibile solo come funzionalità di anteprima.
7.0 Visual Studio 2022 per Mac 17.4 o versione successiva.
6.0 Visual Studio 2022 per Mac 17.0 o versione successiva.

macOS Visual Studio 2022 per Mac con il carico di lavoro .NET selezionato.

Importante

Microsoft ha annunciato il ritiro di Visual Studio per Mac. Visual Studio per Mac non sarà più supportato a partire dal 31 agosto 2024. Le alternative includono:

Per altre informazioni, vedere Annuncio del ritiro di Visual Studio per Mac.

Eseguire l'installazione insieme a Visual Studio Code

Visual Studio Code è un editor di codice sorgente potente e leggero che viene eseguito sul desktop. Visual Studio Code è disponibile per Windows, macOS e Linux.

Anche se Visual Studio Code non è dotato di un programma di installazione di .NET automatizzato come Visual Studio, l'aggiunta del supporto di .NET è semplice.

  1. Scaricare e installare Visual Studio Code.
  2. Scaricare e installare SDK .NET.
  3. Installare l'estensione C# dal marketplace di Visual Studio Code.

Eseguire l'installazione con l'automazione Bash

Gli script dotnet-install vengono usati per l'automazione e le installazioni non amministrative del runtime. È possibile scaricare lo script dalla pagina di riferimento dello script dotnet-install.

Per impostazione predefinita, lo script installa la versione Long Term Support (LTS) più recente, ovvero .NET 8. È possibile scegliere una versione specifica specificando l'opzione channel. Includere l'opzione runtime per installare un runtime. In caso contrario, lo script installa l'SDK.

Il comando seguente installa il runtime di ASP.NET Core per garantire la massima compatibilità. Il runtime di ASP.NET Core include anche il runtime .NET standard.

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

Docker

I contenitori offrono un modo leggero per isolare l'applicazione dal resto del sistema host. I contenitori nello stesso computer condividono solo il kernel e utilizzano le risorse fornite all'applicazione.

.NET può essere eseguito in un contenitore Docker. Le immagini Docker ufficiali per .NET sono pubblicate in Microsoft Container Registry (MCR) e sono individuabili nel repository di Microsoft .NET in Docker Hub. Ogni repository contiene le immagini per diverse combinazioni di .NET (SDK o Runtime) e del sistema operativo che è possibile usare.

Microsoft fornisce immagini progettate per scenari specifici. Il repository di ASP.NET Core, ad esempio, include immagini che vengono compilate per l'esecuzione di app ASP.NET Core nell'ambiente di produzione.

Per altre informazioni sull'uso di .NET in un contenitore Docker, vedere Introduzione a .NET e Docker ed Esempi.

Passaggi successivi