============================

CREATE PROJECTS

============================

Create a console app (C#)

Default behavior (creates a folder named MyGame)

dotnet new console -n MyGame

Create in the current directory (NO folder nesting)

dotnet new console -n MyGame -o .

Create a class library (C#)

dotnet new classlib -n MyLibrary dotnet new classlib -n MyLibrary -o .

Create a class library (F#)

dotnet new classlib -lang F# -n MyFSharpLib dotnet new classlib -lang F# -n MyFSharpLib -o .

Create an empty C# project file

dotnet new project -n MyProject dotnet new project -n MyProject -o .

Create an empty solution

dotnet new sln -n MySolution

============================

ADD PROJECTS TO A SOLUTION

============================

Add a project to the solution

dotnet sln add MyProject/MyProject.csproj

Add multiple projects

dotnet sln add src/Engine/Engine.csproj src/Game/Game.csproj

============================

PROJECT REFERENCES

============================

Add a reference from one project to another

dotnet add src/Game/Game.csproj reference src/Engine/Engine.csproj

Remove a reference

dotnet remove src/Game/Game.csproj reference src/Engine/Engine.csproj

============================

ADD/REMOVE PACKAGES (NuGet)

============================

Add a NuGet package

dotnet add package Newtonsoft.Json

Add a package with version specified

dotnet add package Newtonsoft.Json —version 13.0.1

Remove a NuGet package

dotnet remove package Newtonsoft.Json

============================

BUILD / RUN

============================

Build a solution or project

dotnet build

Run the app (if it’s a console/exe project)

dotnet run

Run with explicit project

dotnet run —project MyGame/MyGame.csproj

Clean build outputs

dotnet clean

============================

TEMPLATE LISTS

============================

List installed templates

dotnet new —list

Install a new template pack

dotnet new —install <TEMPLATE_ID>

============================

GLOBAL JSON (set SDK version)

============================

Create global.json for locking SDK version

dotnet new globaljson —sdk-version 8.0.100

============================

PUBLISHING

============================

Publish self-contained (no runtime needed)

dotnet publish -c Release -r win-x64 —self-contained true

Publish framework-dependent

dotnet publish -c Release