ASP.NET Core Projekt von Version 1.0 auf 1.1 aktualisieren

ASP.NET Core Projekt von Version 1.0 auf 1.1 aktualisieren

Bereits seit Ende 2016 ist .NET Core in Version 1.1 erschienen. Sicherheitstechnisch ist dies wahrlich kein Pflicht-Update – Erhält 1.0 als LTS-Release drei Jahre lang Aktualisierungen. Dennoch lohnt sich ein Blick auf die Neuerungen. Darunter unter anderem View-Kompoenten oder die Möglichkeit, Razor-Views bereits zur Kompilierzeit statt zur Laufzeit vorzukompilieren. Leider ist der Updateprozess noch nicht ganz selbsterklärend. Dieser Artikel beschreibt die notwendigen Schritte eines Updates.

Der manuelle Updateprozess ist übrigens auch dann notwendig, wenn man ein neues ASP.NET Core Projekt erstellt. Die Visual Studio Vorlagen basieren nämlich nach wie vor auf der 1.0 Version.

Was brauchen wir?

Alle benötigten Tools bündelt Microsoft auf der .NET Core Seite. Hier darf man sich nicht von den Versionsnummern verwirren lassen. Gerade beim SDK besitzt die Installationsdatei den Namen dotnet-dev-win-x64.1.0.0-preview2-1-003177.exe, der die ältere Version 1.0 impliziert. Tatsächlich bezieht sich 1.0 nur auf das SDK, nicht die Laufzeitumgebung. Dies wird beim Öffnen des Installers klar:

Es wird die .NET Core 1.1.0 Laufzeitumgebung mit dem 1.0.0 SDK installiert.

Im folgenden sind die Direktlinks zu allen erforderlichen Tools zu finden:

SDK in global.json aktualisieren

Über dem src Ordner ist die Konfigurationsdatei global.json im Ordner Solution Items zu finden:

In Ihr muss der Knoten sdk:version in 1.0.0-preview2-1-003177 geändert werden. Die gesamte Datei sieht dann wie folgt aus:

{
  "projects": [ "src", "test" ],
  "sdk": {
    "version": "1.0.0-preview2-1-003177"
  }
}

Aktualisieren des Frameworks in project.json

Nun muss das Ziel-Framework in project.json auf den neusten Stand gebracht werden. Dazu navigieren wir zur frameworks-Sektion und ersetzen diese durch folgendes Snippet:

"frameworks": {
    "netcoreapp1.1": {
      "dependencies": {
        "Microsoft.NETCore.App": {
          "type": "platform",
          "version": "1.1.0"
        }
      },
      "imports": "dnxcore50"
    }
  }

Gleichzeitig muss Microsoft.NETCore.App aus den dependencies entfernt werden:

  "dependencies": {
    "Microsoft.NETCore.App": {
      "version": "1.0.1",
      "type": "platform"
    },
    ...

Hier genügt es, den folgenden Block zu löschen:

"Microsoft.NETCore.App": {
      "version": "1.0.1",
      "type": "platform"
},

Abhängigkeiten (NuGet-Pakete) updaten

Da ASP.NET Core sehr modular aufgebaut ist, referenziert bereits ein leeres ASP.NET Core API-Projekt auf über 10 NuGet-Pakete. Zumindest Microsofts eigene wie Microsoft.AspNetCore.Mvc oder Microsoft.AspNetCore.Logging müssen ebenfalls auf die neuste Version aktualisiert werden. Dies könnten wir im dependencies-Schlüssel der project.json erledigen.

Deutlich schneller komfortabler geht es allerdings, wenn wir die vorhergegangenen Änderungen an der Datei abspeichern, und den NuGet-Paketmanager (Rechtsklick auf das Projekt > NuGet-Pakete verwalten) öffnen. Nun oben auf den Reiter Aktualisierungen klicken, und NuGet listet und alle verfügbaren Updates auf. Wie man rechts in der Versionsspalte sieht, alles Aktualisierungen von 1.0.x auf 1.1.0:

Hier einfach oben links einen Haken bei Alle Pakete auswählen setzen und auf Aktualisieren klicken. Sollte bereits ein Projekt mit eigenen Paketen existieren, empfiehlt es sich natürlich, diese Liste vorher durchzusehen. Möglicherweise werden sonst ungewollt andere Pakete aktualisiert, die nicht im Zusammenhang mit dem .NET Core Update stehen.

Wenige Sekunden später sind alle Abhängigkeiten auf dem neusten 1.1-Stand. Kontrollieren können wir dies ganz einfach durch erneutes Öffnen der project.json. Dort sollten nun die Kernpakete wie Microsoft.AspNetCore.Mvc in Version 1.1.0 vorliegen. Die Versionsverwaltung markiert uns außerdem diesen Block als verändert durch einen grünen Balken an linken Rand:

Hier müssen alle Versionen von 1.0.x auf 1.1.0 aktualisiert werden, sofern verfügbar.

Wie oben kurz angesprochen, hätten wir den gleichen Effekt auch durch manuelles Ändern der Versionsstrings an dieser Stelle erreichen können. Für einzelne Pakete eine sinnvolle Lösung. Übrigens ist es nicht mehr notwendig, die verfügbaren Versionen manuell auf NuGet.org nachzuschlagen. Visual Studio bietet eine Art Intellisense an:

Dies ist auch auf der anderen Seite beim Eintippen des Paketnamens verfügbar. Ein praktisches Hilfsmittel um zu sehen, welche Pakete bzw. Versionen verfügbar sind.

One thought on “ASP.NET Core Projekt von Version 1.0 auf 1.1 aktualisieren

  1. Adem

    Seit XP sind etliche Jahre vergangen und derzeit insgesamt 4 nachfolgende Windows-Versionen hinzugekommen. Hier haben sich natürlich von Updates und Sicherheit abgesehen auch andere Dinge geändert, die für den Nutzer einen Mehrwert bieten: Seit Vista kann man beispielsweise erweiterte Datensicherungen oder sogar komplette Sytemabbilder anlegen, um Windows bei Problemen wiederherstellen zu können. Wer beispielsweise privat und beruflich am gleichen Computer arbeitet, kann dies in Windows 10 mit virtuellen Desktops besser voneinander trennen – ohne sich mit einem anderen Benutzerkonto anmelden zu müssen.

Leave a Reply