Fortuna Entwickler Blog

Hier wird Ihnen geholfen

NPM Config - MSBuild Pfad & Version bearbeiten

Vor kurzem hat Microsoft .net Version 5 auf den Markt gebracht. Dadurch haben sich in der Verwaltung von Angular Anwendung in Bezug auf asp.net Core Anwendungen ein paar Einstellungen geändert. Beim ausführen der Paketinstallation in einer Angular Anwendung über npm mit "npm install" führte vermehrt zu dem Problem, dass die MSBuild.exe nicht gefunden werden konnte.
Um dieses Problem zu beheben muss npm mitgeteilt werden, wo die .exe liegt und welche Version es nutzen soll.

Um den Pfad einzustellen muss folgender Befehl ausgeführt werden (ggf. Pfad anpassen):

  • npm config set msbuild_path "C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\MSBuild\Current\Bin\MSBuild.exe"
Um die Version einzustellen muss folgender Befehl ausgeführt werden (ggf. Versionsnummer anpassen):

  • npm config set msvs_version 2017
Stand 01.12.2020 muss Version 2017 noch angegeben werden, da NPM 2019 als Keyword nicht registrieren kann.

Ggf. kommt dieses Problem auch durch das builden von dem Package node-gyp in Verbindung mit einer Node.js Version 12+.

Weitere Informationen:
  • https://github.com/nodejs/node-gyp/issues/1753

Was ist der Unterschied zwischen InProcess und OutOfProcess Hosting in asp.net Core?

Um eine asp.net Core Anwendung hosten zu können, gibt es zwei Möglichkeiten. Zum einen InProcess und zum anderen OutOfProcess. Im Folgenden wird der Unterschied erklärt:

  • InProcess: Das Hosting wird über den IIS-Server bereitgestellt.image-7.png (840×221)
  • OutOfProcess: Das Hosting wird über den Kestrel Web Server bereitgestellt.image-9.png (771×174)

Was ist der Unterschied zwischen den beiden Web-Servern? Der IIS ist ein seit über 15 Jahren aktiver Webserver, der gleichzeitig die größtmöglichste Abwärtskompatibiltät gewährt. Dies fällt zu Lasten der Performance. Um diesem Prozess entgegen zu wirken, wurde der Kestrel Web Server erstellt. Der Fokus liegt hier auf neueren Technologien, wie z.B. Async Unterstüztung.

Weitere Informationen:

UseStaticFiles() vs UseSpaStaticFiles() vs UseSpa()

Wenn eine asp.net-Core Anwendung mit einem Frontend wie z.B. Angular geschrieben wird, müssen meist statische Dateien bereitgestellt werden. Im Folgenden wird eine Erklärung dafür gegeben:

  • UseStaticFiles: Der Befehl gibt an, dass statische Dateien wie js, css, html usw. bereitgestellt werden. Typischerweise aus dem wwwrooot-Ordner, wobei dieser geändert werden kann. Die Dateien werden so wie sie erstellt worden sind dem Clienten zur Verfügung gestellt.
  • UseSpaStaticFiles: Der Befehl registriert eine Middleware, die dafür sorgt, dass Dateien aus dem Ordner bereitgestellt werden. Der Pfad wird dafür in de Funktion ConfigureServices => AddSpaStaticFiles konfiguriert.
  • UseSpa: Der Befehl registriert eine Middleware, welche alle Parameter enthält, um die Anwendung starten zu können. Z.B. aus welchem Ordner die Anwendung gestartet wird, in welcher Modus (Dev,Prod) und auch mit welchem Befehl die Anwendung gestartet wird (z.B. npm start).

Weitere Informationen: