Wie lade ich ein .NET Core-Projekt in Visual Studio 2019 automatisch neu?


11

Ich versuche, ASP.NET Core Project wie Angular mit Node oder NPM automatisch neu zu laden.

Es bedeutet, dass ich den Code von .NET Core Project ändere und speichere. Diese Zeit leitet automatisch den Effekt im Browser und lädt die Webseite automatisch im Browser neu.


Ich bin mir nicht ganz sicher, was Sie unter Neuladen verstehen, aber im Allgemeinen können Sie den Code zur Laufzeit nicht ändern.
Yasser Jarouf

@ YasserJarouf, ich spreche nicht im visuellen Studio 2019.
Akash Limbani

ASP.NET Core Angular-Projekte laden den clientseitigen Code bereits neu - es handelt sich um Angular, nicht nur um same asAngular. ASP.NET Core wird verwendet, um die APIs und Nicht-SPA-Seiten bereitzustellen.
Panagiotis Kanavos

Gibt es noch andere Möglichkeiten, wie das Installieren des npm-Pakets mit dem ASP.NET Core-Projekt?
Akash Limbani

Antworten:


5

Ich denke, dass die Dotnet-Uhr funktionieren sollte. Siehe die Dokumentation unter dem Link, da es verschiedene Optionen gibt.

  1. Fügen Sie Microsoft.DotNet.Watcher.Tools zum Abschnitt tools der Datei project.json hinzu
  2. Führen Sie die Dotnet-Wiederherstellung aus
  3. Mit Dotnet Watch Run ausführen

Auf diese Weise kann ich jedoch nicht wie Angular automatisch neu laden. Wenn ich Strg + s gedrückt habe, funktioniert diesmal keine Aktion im Browser. Danke für die Antwort.
Akash Limbani

Sie müssen Ihre Anwendung über die Eingabeaufforderung ausführen und Überwachungsdetails im Projekt hinzufügen. json
PrinceT

Oder Sie können einfach mein Startprofil verwenden, das ich in meiner Antwort angegeben habe.
GrowSing

Ja, das habe ich getan. Ich überprüfe mit diesem dotnet watch run Befehl.
Akash Limbani

Sie können Änderungen in der Konsole sehen. Wenn Sie versuchen auszuführen, können Sie etwas sehen?
PrinceT

3

Entsprechend dieser Anforderung müssen wir die .net-Kernanwendung genau wie die Angular-Anwendung ausführen und die Seiten und Inhalte automatisch ohne erstellte und manuelle Aktualisierung laden.

Ich hatte einige Nachforschungen angestellt und in mehr als 7 Jahren als .net-Entwickler als leitende Ressource in einer ASP.NET-Entwicklungsfirma erfahren, dass ein automatisches Neuladen in einem ASP.NET-Kernprojekt nicht möglich ist. Wir haben jedoch den Erfolg, dass wir in unserer Lösung Dotnet Watch verwenden, das Quelldateien überwacht. Wenn sich eine Datei ändert, wird die gestartete Anwendung heruntergefahren, das Projekt neu erstellt und veröffentlicht und anschließend die Anwendung neu gestartet Aktualisieren Sie die Seite manuell im Browser, um die Änderungen zu erhalten, die in der Anwendung vorgenommen wurden. Wir müssen das Projekt nicht erstellen oder starten.

Schritte zur Verwendung von asp.net watch:

1) Create.Net-Kernanwendung.

2) Öffnen Sie ein Befehlsfenster im Ordner Ihres Webprojekts

3) Typ dotnet watch run

4) Öffnen Sie Ihren Browser und navigieren Sie zu einer API oder Seite

5) Nehmen Sie eine Änderung am Quellcode vor

6) Speichern Sie die Datei

7) Gehen Sie zurück zum Browser und aktualisieren Sie manuell

8) Sie sollten die Änderung reflektiert sehen


Wie geht das in Visual Studio 2019?
Akash Limbani

2

Sie können verwenden dotnet watch. Nämlich. Docs

Ich habe ein benutzerdefiniertes Lunch-Profil erstellt, um die Ausführung in VS zu vereinfachen.

"Watch": {
  "executablePath": "dotnet.exe",
  "workingDirectory": "$(ProjectDir)",
  "commandLineArgs": "watch run",
  "launchBrowser": false,
  "launchUrl": "http://localhost:5000/",
  "environmentVariables": {
    "ASPNETCORE_ENVIRONMENT": "Development"
  }
}

Verwenden Sie diese Option, um nicht automatisch im Browser wie Angular neu zu laden.
Akash Limbani

Können Sie Angular Project ausführen?
Akash Limbani


2

Führen Sie diesen Befehl in der Projektkonsole aus

dotnet watch run

Gleiches gilt für Visual Studio Code


1

Sie sollten dreifach überlegen, bevor Sie mit dieser Option fortfahren. (1) Es ist ressourcenintensiv. Da es erforderlich ist, das modifizierte Projekt und manchmal die gesamte Lösung vor der Operation automatisch zu erstellen. (Stellen Sie sich eine mittlere bis große Asp.net-Lösung vor, die aus vielen Projekten besteht, und erstellen Sie sie für jede durchgeführte Änderung. Wie viel Zeit bleibt für die Programmierung übrig? Zeit für den ersten Start nach einem erfolgreichen Build !! ... Daher wird die Zeit, die Sie mit dieser Option gewinnen möchten, mehrfach verschwendet, insbesondere CLR-basierte Programmiersprachen (z. B. .NET Core). Und schließlich (3) wird erwartet, dass Ihr Projekt Testproben entwickeln muss, die automatisch in die Ansicht injiziert werden können, um einen besseren Automatisierungsprozess zu ermöglichen. Stellen Sie sich vor, wie schwierig es ist!

Versuchen Sie stattdessen, Ihre Lösung einem Unit-Test zu unterziehen. Anschließend wird erwartet, dass jede nächste Änderung oberflächlich ist und nur in geringem Umfang auftritt.

Wenn Sie mit meinem Vorschlag nicht einverstanden sind, schlage ich vor, eine Visual-Studio-Erweiterung zu entwickeln, die die Zielwebseite besser neu lädt on-buildals ein on-save-changesEreignis. Als nächstes Ctrl + bwird der Job machen!

Wo soll man anfangen?

Ich habe einen VSIX entwickelt, der Ordner überwacht, um automatisch bestimmte generierte Dateien außerhalb der VS-Benutzeroberfläche zu laden. Überprüfen Sie den Quellcode. Sie erhalten eine Vorstellung von der Dateiverwaltung des Projekts. Es dreht sich in der EnvDTE-API. Schauen Sie sich diesen Code an.

Überprüfen Sie auch das Quellprojekt von hier aus

Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.