Notitie
Voor toegang tot deze pagina is autorisatie vereist. U kunt proberen u aan te melden of de directory te wijzigen.
Voor toegang tot deze pagina is autorisatie vereist. U kunt proberen de mappen te wijzigen.
In dit artikel wordt beschreven hoe u het .NET SDK-modulepakket installeert. .NET SDK-modulepakketten worden geleverd door en onderhouden door Canonical. Snaps zijn een uitstekend alternatief voor pakketbeheer dat is ingebouwd in uw Linux-distributie.
Een module is een bundel van een app en de bijbehorende afhankelijkheden die in veel verschillende Linux-distributies werken. Snaps zijn detecteerbaar en installeerbaar vanuit de Snap Store. Zie Aan de slag voor meer informatie over Snap.
Belangrijk
Als u .NET installeert met Snap, gebruikt u Snap om al uw .NET installaties te beheren. Vermijd het combineren van Snap met andere installatiemethoden, zoals een pakketbeheerder of de installatie met scripts, omdat mengmethoden conflicten kunnen veroorzaken.
Let op
Snap-installaties van .NET kunnen problemen ondervinden bij het uitvoeren van .NET-hulpprogramma's. Als u .NET hulpprogramma's wilt gebruiken, raden we u aan .NET te installeren met behulp van het script dotnet-install of pakketbeheer voor de specifieke Linux-distributie.
Het is een bekend probleem dat de opdracht dotnet watch niet werkt wanneer .NET is geïnstalleerd via Snap.
Als u .NET hulpprogramma's of de opdracht dotnet watch gaat gebruiken, raden we u aan .NET te installeren met behulp van het dotnet-install script.
Vereisten
- Linux-distributie die snap ondersteunt.
-
snapdde snap daemon.
Uw Linux-distributie bevat mogelijk al snap. Probeer uit te voeren snap vanuit een terminal om te zien of de opdracht werkt. Voor een lijst met ondersteunde Linux-distributies en instructies voor het installeren van snap, zie Installeren snapd.
.NET versies
Microsoft publiceert .NET onder twee verschillende ondersteuningsbeleidsregels, Long Term Support (LTS) en Standard Term Support (STS). De kwaliteit van alle releases is hetzelfde. Het enige verschil is de lengte van de ondersteuning. LTS-releases krijgen drie jaar gratis ondersteuning en patches. STS-releases krijgen twee jaar gratis ondersteuning en patches. Zie .NET Ondersteuningsbeleid voor meer informatie.
De versies van .NET die momenteel door Microsoft worden ondersteund, zijn:
- 10.0 (LTS):ondersteuning eindigt op 14 november 2028.
- 9.0 (STS):ondersteuning eindigt op 10 november 2026.
- 8.0 (LTS):ondersteuning eindigt op 10 november 2026.
Andere entiteiten die .NET bouwen en vrijgeven, kunnen verschillende ondersteuningsbeleidsregels introduceren. Zorg ervoor dat u contact met hen op neemt om te begrijpen hoe .NET wordt ondersteund.
1. Installeer de SDK
Als u de .NET SDK wilt installeren, gebruikt u versiespecifieke modulepakket-id's, omdat u met deze methode meerdere SDK-versies naast elkaar kunt installeren en beheren. Gebruik bijvoorbeeld dotnet-sdk-80 voor .NET 8 en dotnet-sdk-100 voor .NET 10. De SDK bevat zowel de ASP.NET Core als .NET runtime, die is geversied naar de SDK. In dit artikel wordt het .NET 10 SDK-modulepakket gebruikt. Als u een ander pakket gebruikt, vervangt u het.
Tip
De Snapcraft .NET SDK-pakketpagina (.NET 8, .NET 9, .NET 10) bevat distributiespecifieke instructies voor het installeren van Snapcraft en .NET.
Open een terminal.
Gebruik
snap installom het .NET SDK-modulepakket te installeren.Met de volgende opdracht wordt .NET SDK 10 geïnstalleerd:
sudo snap install dotnet-sdk-100
De volgende tabel bevat de .NET SDK-modulepakketten die u kunt installeren:
| .NET versie | Snap-pakket |
|---|---|
| 10 (LTS) | dotnet-sdk-100 |
| 9 (STS) | dotnet-sdk-90 |
| 8 (LTS) | dotnet-sdk-80 |
2. Wijs de opdracht dotnet toe
Omdat Snap geen versieloos dotnet-commando maakt, maakt u een symbolische koppeling om dotnet systeembreed beschikbaar te maken. Maak deze koppeling alleen als u het dotnet-commando aan deze specifieke Snap-installatie wilt koppelen. Als u al .NET hebt geïnstalleerd via een andere methode en u deze koppeling maakt, wordt die toewijzing overschreven.
Als /usr/local/bin/dotnet deze al bestaat, verwijdert u deze voordat u de koppeling maakt.
sudo ln -s /snap/dotnet-sdk-100/current/usr/bin/dotnet /usr/local/bin/dotnet
3. De installatielocatie exporteren
Configureer de DOTNET_ROOT omgevingsvariabele in uw shellprofiel omdat hulpprogramma's deze gebruiken om te bepalen waar .NET is geïnstalleerd. Snap-installaties stellen deze variabele niet automatisch in. Het pad gebruikt de volgende indeling: /snap/{package}/current/usr/lib/dotnet.
export DOTNET_ROOT=/snap/dotnet-sdk-100/current/usr/lib/dotnet
Vervang 100 door de SDK-versie die u hebt geïnstalleerd, zoals 80 voor .NET 8 of 90 voor .NET 9.
De omgevingsvariabele permanent exporteren
Met de voorgaande opdracht wordt alleen de omgevingsvariabele export ingesteld voor de terminalsessie waarin deze is uitgevoerd.
U kunt uw shell-profiel bewerken om de opdrachten permanent toe te voegen. Er zijn veel verschillende shells beschikbaar voor Linux en elk heeft een ander profiel. Voorbeeld:
- Bash Shell: ~/.bash_profile, ~/.bashrc
- Korn Shell: ~/.kshrc of .profile
- Z Shell: _~/.zshrc* of .zprofile
Bewerk het juiste bronbestand voor uw shell, voeg de exportopdracht toe voor de geïnstalleerde .NET versie en sla de wijzigingen op.
Bijvoorbeeld: export DOTNET_ROOT=/snap/dotnet-sdk-100/current/usr/lib/dotnet.
4. De .NET CLI gebruiken
Open een terminal en voer de dotnet opdracht uit.
dotnet
De volgende uitvoer wordt weergegeven:
Usage: dotnet [options]
Usage: dotnet [path-to-application]
Options:
-h|--help Display help.
--info Display .NET information.
--list-sdks Display the installed SDKs.
--list-runtimes Display the installed runtimes.
path-to-application:
The path to an application .dll file to execute.
Zie .NET CLI-overzicht voor meer informatie over het gebruik van de .NET CLI.
Probleemoplossing
- Snap kan niet worden geïnstalleerd op WSL2
- Kan de dotnet-opdracht of SDK niet vinden
- TLS/SSL-certificaatfouten
Snap kan niet worden geïnstalleerd op WSL2
systemd moet zijn ingeschakeld op het WSL2-exemplaar voordat Snap kan worden geïnstalleerd.
Open
/etc/wsl.confin een teksteditor van uw keuze.Plak de volgende configuratie:
[boot] systemd=trueSla het bestand op en start het WSL2-exemplaar opnieuw via PowerShell. Gebruik de opdracht
wsl.exe --shutdown.
Kan het dotnet-commando of SDK niet oplossen
Het is gebruikelijk dat andere apps, zoals een code-IDE of een extensie in Visual Studio Code, proberen de locatie van de .NET SDK op te lossen. Normaal gesproken wordt detectie uitgevoerd door de DOTNET_ROOT omgevingsvariabele te controleren of uit te zoeken waar het dotnet uitvoerbare bestand zich bevindt. Een via Snap geïnstalleerde .NET SDK kan deze apps verwarren. Wanneer deze apps de .NET SDK niet kunnen oplossen, wordt er een fout weergegeven die lijkt op een van de volgende berichten:
- De opgegeven SDK 'Microsoft.NET.Sdk' kan niet worden gevonden
- De opgegeven SDK 'Microsoft.NET.Sdk.Web' kon niet worden gevonden.
- De gespecificeerde SDK 'Microsoft.NET.Sdk.Razor' kon niet worden gevonden.
Voer de volgende stappen uit om het probleem op te lossen:
- Voltooi 2. Wijs de opdracht dotnet toe.
- Stel de
DOTNET_ROOTomgevingsvariabele permanent in door de omgevingsvariabele permanent te exporteren.
TLS/SSL-certificaatfouten
Wanneer .NET is geïnstalleerd via Snap, is het mogelijk dat op sommige distributies de .NET TLS/SSL-certificaten mogelijk niet worden gevonden en er mogelijk een fout optreedt tijdens restore:
Processing post-creation actions...
Running 'dotnet restore' on /home/myhome/test/test.csproj...
Restoring packages for /home/myhome/test/test.csproj...
/snap/dotnet-sdk/27/sdk/2.2.103/NuGet.targets(114,5): error : Unable to load the service index for source https://api.nuget.org/v3/index.json. [/home/myhome/test/test.csproj]
/snap/dotnet-sdk/27/sdk/2.2.103/NuGet.targets(114,5): error : The SSL connection could not be established, see inner exception. [/home/myhome/test/test.csproj]
/snap/dotnet-sdk/27/sdk/2.2.103/NuGet.targets(114,5): error : The remote certificate is invalid according to the validation procedure. [/home/myhome/test/test.csproj]
U kunt dit probleem oplossen door enkele omgevingsvariabelen in te stellen:
export SSL_CERT_FILE=[path-to-certificate-file]
export SSL_CERT_DIR=/dev/null
De locatie van het certificaat verschilt per distributie. Dit zijn de locaties voor de distributies waar het probleem is waargenomen:
| Distributie | Locatie |
|---|---|
| Fedora | /etc/pki/ca-trust/extracted/pem/tls-ca-bundle.pem |
| OpenSUSE | /etc/ssl/ca-bundle.pem |
| Solus | /etc/ssl/certs/ca-certificates.crt |