© best_vector/Shutterstock.com
Windows Developer
Kolumne: .NETversum

Tipps und Tricks rund um .NET und Visual Studio

Microsoft liefert regelmäßig neue Versionen des Software Development Kits (SDK) für .NET Core, dessen Kern das Kommandozeilenwerkzeug dotnet ist. Dabei erscheinen deutlich häufiger .NET-Core-SDK-Versionen als .NET-Core-Runtime-Versionen. Microsoft schreibt: „In general, the .NET Core SDK has a faster release cycle than .NET Core“ [1]. Im Standard kommt immer die zuletzt verwendete Version des .NET Core SDK zum Einsatz, wenn man dotnet aufruft.

Holger Schwichtenberg


Ermitteln der aktuellen SDK-VersionAnlegen einer neuen AnwendungFestlegen einer anderen SDK-Version{ "sdk": { "version": "3.0.100-preview5-011568" }}(Get-Content global.json) -replace '"version": ".+"', '"version": "2.2.501"' | Out-File global.json -Encoding ascii Leider gibt es diese Option bei dotnet new wirklich nur in Verbindung mit der Vorlage globaljson. Man könnte sich vorstellen, dass der folgende Befehl eine Konsolenanwendung und eine global.json mit dem passenden Eintrag anlegt: dotnet new console --sdk-version 2.2.600.Leider kommt es dabei zum Laufzeitfehler Invalid input switch: --sdk-version 2.2.600, denn den Parameter --sdk-version hat Microsoft (zumindest bislang) nur für die Vorlage globaljson als sogenannte Template Option realisiert [2]. Eine Liste aller verfügbaren SDKs erhält man mit dotnet --list-sdks. Auch in den Ausgaben von dotnet --info ist die verfügbare SDK-Liste enthalten. Übrigens richtet sich auch die Entwicklungsumgebung Visual Studio nach der global.json-Datei hinsichtlich der SDK-Version, die beim Kompilieren zum Einsatz kommt.„global.json“-Versionen ermittelnListing 1: Mehrere .NET-Core-Projekte mit „global.json“ für verschiedene SDK-Versionen# Beispiel mehrere .NET Core-Projekte mit global.json für verschiedene SDK-Versionen  Write-host "---- Beispielszenario anlegen"t:cd t:\md codecd codemd Konsolecd Konsoledotnet new console cd ..md Lib1cd Lib1dotnet new classlib dotnet new global.json --sdk-version 2.1.200 cd ..md Lib2cd Lib2dotnet new classlibdotnet new global.json --sdk-version 2.2.200 cd .. Write-host "---- Ermittlung der verwendeten SDK-Versionen pro Ordner"foreach($d in (dir t:\code -Recurse -Directory -Exclude obj, bin)){ cd $d.FullName $vers = dotnet --version $d.fullname + ": " + $vers} # Beispiel mehrere .NET Core-Projekte mit global.json für verschiedene SDK-Versionen  Write-host "---- Beispielszenario anlegen"t:cd t:\md codecd codemd Konsolecd Konsoledotnet new console cd ..md Lib1cd Lib1dotnet new classlib dotnet new global.json --sdk-version 2.1.200 cd ..md Lib2cd Lib2dotnet new classlibdotnet new global.json --sdk-version 2.2.200 cd .. Write-host "---- Ermittlung der verwendeten SDK-Versionen pro Ordner"foreach($d in (dir t:\code -Recurse -Directory -Exclude obj, bin)){ cd $d.FullName $vers = dotnet --version $d.fullname + ": " + $vers} ---- Ermittlung der verwendeten SDK-Versionen pro OrdnerT:\code\Konsole: 3.0.100-preview5-011568T:\code\Lib1: 2.1.200T:\code\Lib2: 2.2.204 Lis...

Windows Developer
Kolumne: .NETversum

Tipps und Tricks rund um .NET und Visual Studio

Microsoft liefert regelmäßig neue Versionen des Software Development Kits (SDK) für .NET Core, dessen Kern das Kommandozeilenwerkzeug dotnet ist. Dabei erscheinen deutlich häufiger .NET-Core-SDK-Versionen als .NET-Core-Runtime-Versionen. Microsoft schreibt: „In general, the .NET Core SDK has a faster release cycle than .NET Core“ [1]. Im Standard kommt immer die zuletzt verwendete Version des .NET Core SDK zum Einsatz, wenn man dotnet aufruft.

Holger Schwichtenberg


Ermitteln der aktuellen SDK-VersionAnlegen einer neuen AnwendungFestlegen einer anderen SDK-Version{ "sdk": { "version": "3.0.100-preview5-011568" }}(Get-Content global.json) -replace '"version": ".+"', '"version": "2.2.501"' | Out-File global.json -Encoding ascii Leider gibt es diese Option bei dotnet new wirklich nur in Verbindung mit der Vorlage globaljson. Man könnte sich vorstellen, dass der folgende Befehl eine Konsolenanwendung und eine global.json mit dem passenden Eintrag anlegt: dotnet new console --sdk-version 2.2.600.Leider kommt es dabei zum Laufzeitfehler Invalid input switch: --sdk-version 2.2.600, denn den Parameter --sdk-version hat Microsoft (zumindest bislang) nur für die Vorlage globaljson als sogenannte Template Option realisiert [2]. Eine Liste aller verfügbaren SDKs erhält man mit dotnet --list-sdks. Auch in den Ausgaben von dotnet --info ist die verfügbare SDK-Liste enthalten. Übrigens richtet sich auch die Entwicklungsumgebung Visual Studio nach der global.json-Datei hinsichtlich der SDK-Version, die beim Kompilieren zum Einsatz kommt.„global.json“-Versionen ermittelnListing 1: Mehrere .NET-Core-Projekte mit „global.json“ für verschiedene SDK-Versionen# Beispiel mehrere .NET Core-Projekte mit global.json für verschiedene SDK-Versionen  Write-host "---- Beispielszenario anlegen"t:cd t:\md codecd codemd Konsolecd Konsoledotnet new console cd ..md Lib1cd Lib1dotnet new classlib dotnet new global.json --sdk-version 2.1.200 cd ..md Lib2cd Lib2dotnet new classlibdotnet new global.json --sdk-version 2.2.200 cd .. Write-host "---- Ermittlung der verwendeten SDK-Versionen pro Ordner"foreach($d in (dir t:\code -Recurse -Directory -Exclude obj, bin)){ cd $d.FullName $vers = dotnet --version $d.fullname + ": " + $vers} # Beispiel mehrere .NET Core-Projekte mit global.json für verschiedene SDK-Versionen  Write-host "---- Beispielszenario anlegen"t:cd t:\md codecd codemd Konsolecd Konsoledotnet new console cd ..md Lib1cd Lib1dotnet new classlib dotnet new global.json --sdk-version 2.1.200 cd ..md Lib2cd Lib2dotnet new classlibdotnet new global.json --sdk-version 2.2.200 cd .. Write-host "---- Ermittlung der verwendeten SDK-Versionen pro Ordner"foreach($d in (dir t:\code -Recurse -Directory -Exclude obj, bin)){ cd $d.FullName $vers = dotnet --version $d.fullname + ": " + $vers} ---- Ermittlung der verwendeten SDK-Versionen pro OrdnerT:\code\Konsole: 3.0.100-preview5-011568T:\code\Lib1: 2.1.200T:\code\Lib2: 2.2.204 Lis...

Neugierig geworden?


    
Loading...

Angebote für Teams

Für Firmen haben wir individuelle Teamlizenzen. Wir erstellen Ihnen gerne ein passendes Angebot.

Das Library-Modell:
IP-Zugang

Das Company-Modell:
Domain-Zugang