Command-Lines
To make it easier to enter commands at the prompt, this page lists all commands as a single line that can be copied and pasted.
Note: Page numbers will be updated once the final print files are made available to me in November 2023.
- Chapter 1 - Hello, C#! Welcome, .NET!
- Page 12 - Managing VS Code extensions at the command prompt
- Page 16 - Listing and removing versions of .NET
- Page 22 - Understanding top-level programs
- Page 27 - Writing code using VS Code
- Page 30 - Compiling and running code using the dotnet CLI
- Page 30 - Adding a second project using VS Code
- Page 36 - Cloning the book solution code repository
- Page 37 - Getting help for the dotnet tool
- Chapter 2 - Speaking C#
- Chapter 4 - Writing, Debugging, and Testing Functions
- Chapter 7 - Packaging and Distributing .NET Types
- Page 384 - Controlling the .NET SDK
- Page 389 - Understanding dotnet commands
- Page 389 - Getting information about .NET and its environment
- Page 391 - Publishing a self-contained app
- Page 393 - Publishing a single-file app
- Page 394 - Enabling assembly-level trimming
- Page 395 - Enabling type-level and member-level trimming
- Page 395 - Controlling where build artifacts are created
- Page 400 - Publishing a native AOT project
- Chapter 10 - Working with Data Using Entity Framework Core
- Chapter 11 - Querying and Manipulating Data Using LINQ
- Chapter 12 - Introducing Modern Web Development Using ASP.NET Core
- Chapter 13 - Building Websites Using ASP.NET Core
- Chapter 14 - Interactive Web Components Using Blazor
- Chapter 15 - Building and Consuming Web Services
code --install-extension ms-dotnettools.csdevkit
Listing all installed .NET SDKS:
dotnet --list-sdks
Listing all installed .NET runtimes:
dotnet --list-runtimes
Details of all .NET installations:
dotnet --info
If you are using the dotnet CLI at the command prompt, add a switch to generate a console app project using the legacy Program
class with a Main
method:
dotnet new console --use-program-main
Using the dotnet CLI to create a new solution named Chapter01
:
dotnet new sln --name Chapter01
Creating a new Console App project in a folder named HelloCS
with a project file named HelloCS.csproj
:
dotnet new console --output HelloCS
Adding a named project to the solution file:
dotnet sln add HelloCS
Opening VS Code in the current folder:
code .
Creating a new Console App project named HelloCS
that targets a specified framework version, for example, .NET 8:
dotnet new console -f net8.0 -o HelloCS
dotnet run
Creating a project named AboutMyEnvironment
using the legacy Program
class with a Main
method:
dotnet new console -o AboutMyEnvironment --use-program-main
Add the project to the solution:
dotnet sln add AboutMyEnvironment
git clone https://github.com/markjprice/cs13net9.git
Getting help for a dotnet
command like build
from the documentation web page:
dotnet help build
Getting help for a dotnet
command like build
at the command prompt:
dotnet build -?
Getting help for a specified project template, for example, console
:
dotnet new console -?
Output the current version of the .NET SDK:
dotnet --version
Example of a command line with multiple arguments:
dotnet new console -lang "F#" --name "ExploringConsole"
Passing four arguments when running your project:
dotnet run firstarg second-arg third:arg "fourth arg"
Setting options using arguments:
dotnet run red yellow 50
Starting a project using Hot Reload:
dotnet watch
Creating a class library project and adding it to the solution file:
dotnet new classlib -o CalculatorLib
dotnet sln add CalculatorLib
Creating an XUnit text project and adding it to the solution file:
dotnet new xunit -o CalculatorLibUnitTests
dotnet sln add CalculatorLibUnitTests
Running a unit test project:
dotnet test
Listing the installed .NET SDKs with a column to indicate if it has a newer version that can be upgraded to:
dotnet sdk check
Creating a new class library project that targets .NET Standard 2.0:
dotnet new classlib -f netstandard2.0
Listing the installed .NET SDKs:
dotnet --list-sdks
Creating a global.json
file to control to default .NET SDK for projects created in the current folder and its descendents:
dotnet new globaljson --sdk-version 8.0.400
Listing available project templates using .NET 7 or later:
dotnet new list
Listing available project templates using .NET 6 or earlier:
dotnet new --list
Listing available project templates using .NET 6 or earlier (short form):
dotnet new -l
Getting detailed information about installed .NET runtimes, SDKs, and workloads:
dotnet --info
Build and publish the release version for Windows:
dotnet publish -c Release -r win-x64 --self-contained
Build and publish the release version for Windows on ARM64:
dotnet publish -c Release -r win-arm64 --self-contained
Build and publish the release version for macOS on Apple Silicon:
dotnet publish -c Release -r osx-arm64 --self-contained
Build and publish the release version for Linux on Intel:
dotnet publish -c Release -r linux-x64 --self-contained
dotnet publish -c Release -r win-x64 --no-self-contained -p:PublishSingleFile=true
dotnet publish -c Release -r win-x64 --self-contained -p:PublishSingleFile=true
dotnet publish -c Release -r win-x64 --self-contained -p:PublishSingleFile=true -p:PublishTrimmed=True
dotnet publish -c Release -r win-x64 --self-contained -p:PublishSingleFile=true -p:PublishTrimmed=True -p:TrimMode=Link
To create a MSBuild Directory.Build.props
file:
dotnet new buildprops --use-artifacts
dotnet publish
On Linux, you can get set up with SQLite using the following command:
sudo apt-get install sqlite3
Creating the Northwind SQLite database:
sqlite3 Northwind.db -init Northwind4SQLite.sql
Listing installed dotnet
global tools:
dotnet tool list --global
Updating an older dotnet-ef
tool:
dotnet tool update --global dotnet-ef
Installing the latest dotnet-ef
as a global tool:
dotnet tool install --global dotnet-ef
Updating to a specific version of dotnet-ef
tool:
dotnet tool update --global dotnet-ef --version 9.0-*
Uninstalling an older dotnet-ef
tool:
dotnet tool uninstall --global dotnet-ef
dotnet ef dbcontext scaffold "Data Source=Northwind.db" Microsoft.EntityFrameworkCore.Sqlite --table Categories --table Products --output-dir AutoGenModels --namespace WorkingWithEFCore.AutoGen --data-annotations --context NorthwindDb
Note the following:
- The command action:
dbcontext scaffold
- The connection string:
"Data Source=Northwind.db"
- The database provider:
Microsoft.EntityFrameworkCore.Sqlite
- The tables to generate models for:
--table Categories --table Products
- The output folder:
--output-dir AutoGenModels
- The namespace:
--namespace WorkingWithEFCore.AutoGen
- To use data annotations as well as the Fluent API:
--data-annotations
- To rename the context from [database_name]Context:
--context NorthwindDb
Creating the Northwind SQLite database:
sqlite3 Northwind.db -init Northwind4Sqlite.sql
Creating the Northwind SQLite database:
sqlite3 Northwind.db -init Northwind4SQLite.sql
Creating the EF Core model for the Northwind database:
dotnet ef dbcontext scaffold "Data Source=../Northwind.db" Microsoft.EntityFrameworkCore.Sqlite --namespace Northwind.EntityModels --data-annotations
To create a new empty ASP.NET Core project:
dotnet new web
Starting an ASP.NET Core project and specifying the https
profile:
dotnet run --launch-profile https
Creating a new project using the Blazor Web App template with server-side or client-side interactivity enabled:
dotnet new blazor --interactivity Auto -o Northwind.Blazor
Creating a Web API project using ASP.NET Core Minimal API:
dotnet new webapi -o Northwind.WebApi
Creating a Web API project using Minimal API (explicitly):
dotnet new webapi --use-minimal-api -o Northwind.WebApi
Creating a Web API project using Minimal APIs (explicitly, short form):
dotnet new webapi -minimal -o Northwind.WebApi
Creating a Web API project using controllers:
dotnet new webapi --use-controllers -o Northwind.WebApi
Creating a Web API project using controllers (short form):
dotnet new webapi -controllers -o Northwind.WebApi