Laden...

dotnet watch run öffnet http und https Fenster

Erstellt von Peter Bucher vor 3 Jahren Letzter Beitrag vor 3 Jahren 618 Views
Peter Bucher Themenstarter:in
5.941 Beiträge seit 2005
vor 3 Jahren
dotnet watch run öffnet http und https Fenster

Hallo zusammen

Wenn ich ein neues ASP.NET 5 Projekt erstelle und dies per dotnet watch run starte, öffnet sich ein http :5000 und ein https:5001 Fenster. Ich möchte aber kein oder nur das https Fenster geöffnet haben.
Leider fand ich nicht wirklich passende Argumente und finde nicht, wo das konfiguriert werden kann.


watch : Started
info: Microsoft.Hosting.Lifetime[0]
      Now listening on: http://localhost:5000
info: Microsoft.Hosting.Lifetime[0]
      Now listening on: https://localhost:5001

Mit ASP.NET Core 3.1 war das Verhalten noch anders.

Grüsse Peter

--
Microsoft MVP - Visual Developer ASP / ASP.NET, Switzerland 2007 - 2011

16.806 Beiträge seit 2008
vor 3 Jahren

Das sind die Urls in der ASPNETCORE_URLS EnvVar.
Gibt mehrere Wege die zu konfigurieren:

  • Launch-Options mit --urls
  • Eben ASPNETCORE_URLS
  • UseUrls in der Program.cs
  • UseKestrel in der Program.cs
  • launchSettings.json

und noch 2-3 andere.
Das ist übrigens schon seit ASP.NET Core 2 so.

Peter Bucher Themenstarter:in
5.941 Beiträge seit 2005
vor 3 Jahren

Hi Abt

Vielen vielen Dank! Wenn das klappt, erleichtert das schon einiges.
Mit ASP.NET Core 3.1 mit den gleichen launch.settings ging kein Fenster auf, darum dachte ich, es hätte keinen Zusammenhang. Denke aber es liegt an den dotnet.... Standardeinstellungen die sich mit 5.0 geändert haben.

Ich gucke mir das an und hoffe das klappt auch, wenn ich es von der Konsole aus starte.

Wie ist das eigentlich mit dotnet bundle start, wenn ich das als zweiten punkt in einer .bat file drin habe (nach einem dotnet watch start Aufruf), wird das ja nicht ausgeführt, gibt es da eine Möglichkeit?
Sodass die Bundles auch automatisch "gewatched" werden?
Mit 3.1 hat das eine Zeit lang funktioniert, mit dem nuget-Package - aber jetzt auch nicht mehr zuverlässig.
Ich starte halt gerne eine .bat file, wo ich dann mit CTR+C wieder beenden oder neu starten kann, wenns mal hängt und den Status sehe.

Habe nicht gerne VS immer im Debugmodus, sondern hänge die Instanz an, wenn ich debuggen möchte.

Grüsse Peter

--
Microsoft MVP - Visual Developer ASP / ASP.NET, Switzerland 2007 - 2011

16.806 Beiträge seit 2008
vor 3 Jahren

Ach Dir ging es um das Window... jetzt hab ichs kapiert.
Sorry, da hab ich mich verlesen.

Also bei mir öffnet sich kein zusätzliches Fenster; wüsste auch nicht, dass das ein gewolltes Verhalten wäre.

Wie ist das eigentlich mit dotnet bundle start, wenn ich das als zweiten punkt in einer .bat file drin habe (nach einem dotnet watch start Aufruf), wird das ja nicht ausgeführt, gibt es da eine Möglichkeit?

Wir hier mit dem Forum führen zunächst den WebCompiler als Pre-Build Event aus, der zB. SCSS in CSS umwandelt.


    <!-- Install Web Compiler Tool [url]excubo-ag/WebCompiler[/url] -->
    <Target Name="ToolRestore" BeforeTargets="PreBuildEvent">
        <Exec Command="dotnet tool update excubo.webcompiler" StandardOutputImportance="high" />
    </Target>
    <!-- Compile wwwroot -->
    <Target Name="PreBuild" AfterTargets="ToolRestore">
        <Exec Command="dotnet tool run webcompiler -r wwwroot/scss -c webcompilerconfiguration.json" StandardOutputImportance="high" />
    </Target>

Danach rennt im Build das Bundle. Das erfolgt automatisch, wenn man das NuGet dazu verwendet.


        <PackageReference Include="BuildBundlerMinifier" Version="3.2.449" />

Automatische Watches gibts nicht mehr.

Peter Bucher Themenstarter:in
5.941 Beiträge seit 2005
vor 3 Jahren

Hi Abt

Ja, wenn ich dotnet watch in der Konsole per .bat aufrufe, kommt ein Fenster. Muss also an was anderem liegen. Aber gut weiss ich jetzt, wie ich die URLs konfigurieren kann. Danke dir.

Wegen den Bundles: Ist es also so, dass das was ich in PreBuild aufnehme, ausgeführt wird, wenn dotnet watch am
rennen und dann eben neustarten ist. Weil er ja dann einen Rebuild macht, korrekt?

Sollte ja auch mit den dotnet Standard bundle Tools gehen. Dieses Weboptimizer ist ja neu jetzt.

Grüsse Peter

--
Microsoft MVP - Visual Developer ASP / ASP.NET, Switzerland 2007 - 2011

16.806 Beiträge seit 2008
vor 3 Jahren

Ja, wenn ich dotnet watch in der Konsole per .bat aufrufe, kommt ein Fenster.

Wenn mich nicht alles täuscht, dann ist das ein Windows-Verhalten und hat mit .NET nichts zutun.

Wegen den Bundles: Ist es also so, dass das was ich in PreBuild aufnehme, ausgeführt wird, wenn dotnet watch am
rennen und dann eben neustarten ist.

Nein, ein Pre-Build läuft nur vor dem Build.

Sollte ja auch mit den dotnet Standard bundle Tools gehen. Dieses Weboptimizer ist ja neu jetzt.

Weboptimizer ist sehr alt, so alt, dass es schon unsupported ist.
WebCompiler ist ebenfalls so alt, dass die Variante von Mads ebenfalls schon out-of-dev ist und nur die Forks aktuell sind.

Der BuildBundlerMinifier ist das aktuellste, das Microsoft derzeit bietet.
Gibt hier aber kein Watch.

Watch gibts "offiziell" glaube ich nur via Gulp Task.

Peter Bucher Themenstarter:in
5.941 Beiträge seit 2005
vor 3 Jahren

Hmm Abt, vor dem Build ist nach dem Build oder?
D.h. bevor der Build startet, bzw. eben auch wenn er neustartet, würde es Sinn machen.

Es gibt also ausser gulp keine Möglichkeit, direkt live zu entwickeln out-of-the-box in 5.0. Wow.
Ich müsste mich übel täuschen; dachte das ging eine zeitlang in 3.1 problemlos.

Wie machst du denn das? Jedesmal manuell anstossen offenbar, oder mit gulp?
JS, CSS....?

Grüsse Peter

--
Microsoft MVP - Visual Developer ASP / ASP.NET, Switzerland 2007 - 2011

16.806 Beiträge seit 2008
vor 3 Jahren

Es gibt also ausser gulp keine Möglichkeit, direkt live zu entwickeln out-of-the-box in 5.0. Wow.

Entwickeln von ASP.NET Core-Apps mit einem Dateiwatcher
Mehr kenne ich auch nicht.

Die Prio ist hier - meine Vermutung - in Zeiten von React und Co halt auch nicht exorbitant hoch...

Wie machst du denn das? Jedesmal manuell anstossen offenbar, oder mit gulp?
JS, CSS....?

Außer die 15 Zeilen Java-Script Code für das Forum hab ich mit statischen Ressourcen eigentlich nichts zutun.
Im beruflichen Alltag mach ich 0% Razor-Stuff aber 100% Json / GraphQL / gRPC.

Peter Bucher Themenstarter:in
5.941 Beiträge seit 2005
vor 3 Jahren

Hi Abt

Folgendes sollte gehen: Bundling And Minifying In ASP.NET Core Applications
Precompile => dotnet bundle watch (Steht ein wenig weiter unten im Artikel.

Grüsse Peter

--
Microsoft MVP - Visual Developer ASP / ASP.NET, Switzerland 2007 - 2011

Peter Bucher Themenstarter:in
5.941 Beiträge seit 2005
vor 3 Jahren

Hi Abt

Das rennt tatsätchlich wie es soll. Die Einstellung die ich gesucht habe, war wirklich die URLs von ENV und launchBrowser. Vielen Dank!


    "MeinProjektName": {
      "commandName": "Project",
      "dotnetRunMessages": "true",
      "launchBrowser": false,
      "applicationUrl": "https://localhost:5001",
      "environmentVariables": {
        "ASPNETCORE_ENVIRONMENT": "Development",
        "ASPNETCORE_URLS": "https://localhost:5001"
      }
    }

Und rufe


dotnet watch run --no-launch-profile

auf; es geht kein Fenster auf 🙂

edit: Die Code Hervorhebung ist cool hier im Forum!

Grüsse

--
Microsoft MVP - Visual Developer ASP / ASP.NET, Switzerland 2007 - 2011

16.806 Beiträge seit 2008
vor 3 Jahren

Top! 👍

Die Code Hervorhebung ist cool hier im Forum

Ist die Light-Version der Visual Studio Colors 🙂

Peter Bucher Themenstarter:in
5.941 Beiträge seit 2005
vor 3 Jahren

Hi Abt

Ich kann nicht mehr editieren. Ist die Einstellung doch nicht korrekt bei "Experten"?

Nachtrag: Wenn das Kommando "dotnet bundle" nicht gefunden wird, fehlt wohl noch was
=> dotnet-bundle-not-working-in-net-core-mvc-application

Gruss Peter

--
Microsoft MVP - Visual Developer ASP / ASP.NET, Switzerland 2007 - 2011

16.806 Beiträge seit 2008
vor 3 Jahren

Bitte irgendwelche Fehler nur, wirklich nur in Sammelthema Wünsche und Bugreports myCSharp posten. Danke! 👍

Peter Bucher Themenstarter:in
5.941 Beiträge seit 2005
vor 3 Jahren

Hi Abt

Alles klar, mache ich.

--

Also hier meine Lösung für ASP.NET Core 5.0, um dotnet watch auch für Bundles zu aktivieren.

BuildBundlerMinifier installieren:

Wenn dotnet watch genutzt wird, kann die Projektdatei wie folgt angepasst werden, damit dotnet watch neustartet,
dies tut der Bundler dann auch.
Dies ist auch bspw. für CSS oder für einzelne Dateien möglich.


<ItemGroup>
    <!-- extends watching group to include *.js files -->
    <Watch Include="**\*.js" Exclude="node_modules\**\*.js;$(DefaultExcludes)" />
</ItemGroup>

Viel Erfolg 🙂

Grüsse Peter

--
Microsoft MVP - Visual Developer ASP / ASP.NET, Switzerland 2007 - 2011