.NET 5 wurde veröffentlicht. Wenn Sie jedoch kein LTS haben und sich fragen, wie es installiert werden soll, können Sie es mit Docker und Visual Studio Code ausprobieren. Dieses Mal habe ich die Erweiterung [Remote Development](https://marketplace.visualstudio.com/items?itemName=ms-VisualStudio Code-remote.VisualStudio Code-remote-extensionpack) von VisualStudio Code verwendet, um .NET5 mit Docker zu starten. Lassen Sie uns überprüfen, ob das Programm ausgeführt / debuggt werden kann, indem Sie eine Verbindung zum Container herstellen.
Starten Sie zunächst den Test-App-Container, erstellen Sie ein ASP.NET MVC-Projekt und überprüfen Sie den Vorgang.
Um die in Docker auf der Seite des Host-Betriebssystems erstellten Dateien zu speichern, erstellen Sie ein Verzeichnis für die Volume-Bereitstellung und starten Sie das .NET 5 SDK-Image. Im ASP.NET MVC-Projekt wird http standardmäßig an Port 5000 und https an Port 5001 bereitgestellt. Ordnen Sie daher jeden Port zu.
mkdir src
docker run -it -p 5000:5000 -p 5001:5001 -v c:¥src:/src mcr.microsoft.com/dotnet/sdk:5.0
Sobald Sie eine Verbindung zum Container hergestellt haben, wechseln Sie in das gerade gemountete Verzeichnis / src und erstellen Sie ein neues MVC-Projekt.
cd /src
mkdir WebSite1
cd WebSite1/
dotnet new mvc
The template "ASP.NET Core Web App (Model-View-Controller)" was created successfully.
This template contains technologies from parties other than Microsoft, see https://aka.ms/aspnetcore/5.0-third-party-notices for details.
Processing post-creation actions...
Running 'dotnet restore' on /src/WebSite1/WebSite1.csproj...
Determining projects to restore...
Restored /src/WebSite1/WebSite1.csproj (in 67 ms).
Restore succeeded.
Wenn ich das Programm mit "dotnet run" ausführe, wird die folgende Fehlermeldung angezeigt, dass "localhost: 5000" nicht an IPV6 gebunden werden kann.
root@cc0ff91bfc60:/src/WebSite1# dotnet run
Building...
warn: Microsoft.AspNetCore.DataProtection.Repositories.FileSystemXmlRepository[60]
Storing keys in a directory '/root/.aspnet/DataProtection-Keys' that may not be persisted outside of the container. Protected data will be unavailable when container is destroyed.
warn: Microsoft.AspNetCore.Server.Kestrel[0]
Unable to bind to https://localhost:5001 on the IPv6 loopback interface: 'Cannot assign requested address'.
warn: Microsoft.AspNetCore.Server.Kestrel[0]
Unable to bind to http://localhost:5000 on the IPv6 loopback interface: 'Cannot assign requested address'.
Sie können es sicher starten, indem Sie "http: //0.0.0.0: 5000" mit dem Parameter --urls oder "http: // *: 5000" mit einem Platzhalter angeben.
root@cc0ff91bfc60:/src/WebSite1# dotnet run --urls http://*:5000
Building...
warn: Microsoft.AspNetCore.DataProtection.Repositories.FileSystemXmlRepository[60]
Storing keys in a directory '/root/.aspnet/DataProtection-Keys' that may not be persisted outside of the container. Protected data will be unavailable when container is destroyed.
info: Microsoft.Hosting.Lifetime[0]
Now listening on: http://0.0.0.0:5000
info: Microsoft.Hosting.Lifetime[0]
Application started. Press Ctrl+C to shut down.
info: Microsoft.Hosting.Lifetime[0]
Hosting environment: Development
info: Microsoft.Hosting.Lifetime[0]
Content root path: /src/WebSite1
Wenn Sie mit einem Webbrowser darauf zugreifen, können Sie sehen, dass es angezeigt werden kann.
Stellen Sie mit Visual Studio Code eine Verbindung zu der im vorherigen Abschnitt erstellten Instanz in Docker her, überprüfen Sie den Inhalt des erstellten Projekts und prüfen Sie, ob die Debug-Funktion verwendet werden kann.
Installieren Sie die Erweiterung VisualStudio Code Remote Development (https://marketplace.visualstudio.com/items?itemName=ms-VisualStudio Code-remote.VisualStudio Code-remote-extensionpack).
Sie können eine Verbindung zu einem laufenden Container herstellen, indem Sie in der Befehlspalette "Remote-Container: An laufenden Container anhängen ..." ausführen.
Öffnen Sie das Verzeichnis / src / WebSite1
in VisualStudio Code, um die Projekte im Container anzuzeigen.
Führen Sie ".NET: Generieren von Assets zum Erstellen und Debuggen" aus der Befehlspalette aus, um die für das Debuggen erforderlichen Dateien (lanunch.json und task.json) zu Ihrem Projekt hinzuzufügen. Wenn Sie mit dem Debuggen mit "F5" oder "Strg + Umschalt + D" beginnen, nachdem Sie die Datei zum Debuggen hinzugefügt haben, wird die Website nach dem Erstellen gestartet und der Webbrowser zum Debuggen wird gestartet. Danach können Sie mit der Debug-Funktion von Visual Studio Code so entwickeln, als würden Sie lokal entwickeln. Wenn Sie die Umgebungsvariablen in Index.cshtml anzeigen, können Sie sehen, dass .NET auf der Containerseite funktioniert.
Wenn Sie es noch nicht in die Entwicklungsumgebung einfügen möchten, können Sie es ganz einfach ausprobieren. Probieren Sie es also bitte aus.