.NET Core 1.1 installieren birgt einige Herausforderungen

Der Dotnet-Doktor  –  0 Kommentare

Vorgestern ist .NET Core in der Version 1.1 erschienen (siehe mein News-Beitrag dazu). Die Nutzung der neuen Version ist aber leider etwas erklärungsbedürftig, wie erste E-Mails von Kollegen und Kunden an mich zeigen.

Auf der .NET-Core-Website verlinkt Microsoft unter "Visual Studio 2015" wie bisher auf die Installationspakete für "Visual Studio 2015 Update 3" und die ".NET Core 1.0.1 Tools Preview 2". Damit hat man dann aber nicht .NET Core 1.1, sondern nur .NET Core 1.0.

Für die Nutzung von .NET Core 1.1 muss man zusätzlich noch von der Registerkarte "Command Line/other" das ".NET Core 1.1 SDK" herunterladen. Dann bekommt man eine Datei, die verwirrenderweise dotnet-dev-win-x64.1.0.0-preview2-1-003177.exe heißt. Man denkt also, man hätte immer noch nur .NET Core 1.0. Wenn man sich aber die Dateieigenschaften ansieht, dann liest man dort unter Description: "Microsoft .NET Core 1.1.0 - SDK 1.0.0 Preview 2.1-003177 (x64)". Die Versionsnummer 1.0 in dem Dateinamen bezieht sich also nur auf die SDK-Version, nicht die Laufzeitumgebung! Auch wer unbeirrt einfach das Setup gestartet hat, sieht die ersehnte Versionsnummer "1.1" für .NET Core.

Abbildung 1: Verwirrender Name des Installationspakets
Abbildung 2: Im Startbildschirm des Setup selbst sieht man dann ".NET Core 1.1"

Das SDK umfasst die .NET-Core-Laufzeitkomponenten (1.0 bzw. 1.1) und die Werkzeuge, die sich noch immer noch im Preview-Stadium befinden. Es gibt derzeit drei Versionen der Werkzeuge und daher auch des SDK:

  • SDK 1.0 Preview 2: erschienen mit .NET Core 1.0, verwendet project.json als Projektdatei.
  • SDK 1.0 Preview 2.1: erschienen mit .NET Core 1.1, verwendet project.json als Projektdatei.
  • SDK 1.0 Preview 3: erschienen mit .NET Core 1.1, verwendet CSProj-Dateien für MSBuild statt project.json (nur für Visual Studio 2017. Bestehende project.json-Dateien können Entwickler in .csproj-Dateien konvertieren, müssen jedoch bedenken, dass es keine Option zur Rückkonvertierung gibt, falls sie später doch mit dem JSON-Format oder Visual Studio 2015 weiterarbeiten möchten).

Wenn man dann also dotnet-dev-win-x64.1.0.0-preview2-1-003177.exe installiert, bekommt man auf dem Rechner die Laufzeitumgebung .NET Core 1.1 (siehe C:\Program Files\dotnet\shared\Microsoft.NETCore.App\1.1.0) und das SDK 1.0 Preview 2.1 (siehe C:\Program Files\dotnet\sdk\1.0.0-preview2-1-003177).

Damit ist man leider immer noch nicht am Ziel. Beim Anlegen eines neuen Projekts in Visual Studio 2015 wird immer noch ein .NET-Core 1.0-Projekt erstellt, denn für die Visual-Studio-Projektvorlagen gibt es bisher kein Update auf .NET Core 1.1. Entwickler müssen hier selbst die Konfigurationsdateien ändern.

Die global.json muss so aussehen. Hier muss nur der Eintrag bei SDK-Version geändert werden.

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

Die project.json erfordert etwas umfangreichere Umbauarbeiten:

{
"version": "1.0.0-*",
"buildOptions": {
"debugType": "portable",
"emitEntryPoint": true
},
"dependencies": {},
"frameworks": {
"netcoreapp1.1": {
"dependencies": {
"Microsoft.NETCore.App": {
"type": "platform",
"version": "1.1.0"
}
},

"imports": "dnxcore50"
}
}
}

Gleiche Umbauarbeiten gelten natürlich für bestehende .NET-Core-1.0-Projekte. Das obige Beispiel ist für ein .NET-Core-Konsolenprojekt. Die Änderungen sind in ASP.NET-Core-1.0-Projekten analog vorzunehmen.