SawKing.DotsKit.Tool 2.8.0

dotnet tool install --global SawKing.DotsKit.Tool --version 2.8.0
                    
This package contains a .NET tool you can call from the shell/command line.
dotnet new tool-manifest
                    
if you are setting up this repo
dotnet tool install --local SawKing.DotsKit.Tool --version 2.8.0
                    
This package contains a .NET tool you can call from the shell/command line.
#tool dotnet:?package=SawKing.DotsKit.Tool&version=2.8.0
                    
nuke :add-package SawKing.DotsKit.Tool --version 2.8.0
                    

dotskit

dotskit is the command-line tool of DotNetSolutionKit, the dotnet new template of .NET microservice solutions. It makes a solution with the template, adds services to it and flags to its services, and upgrades it to a newer version of the template. Where the team and the template changed the same file, it merges the two the way git merges branches.

Documentation, in English and Russian: dotskit.sawking.tech

Install

dotnet tool install -g SawKing.DotsKit.Tool

dotskit X.Y.Z generates with the template X.Y.Z, which it installs from NuGet into a hive of its own; the template installed with dotnet new install is left as it is.

Commands

# in an empty folder: a solution with its first service
dotskit new -N MyCompany -P MyProduct -S Orders

# in the solution: one more service, with the solution's names, database and deployment
dotskit new -S Billing --Storage true

# in the solution: a flag for a service it has
dotskit new -S Orders --MongoDB true

# in a solution made with the template alone: describe it in its manifest
dotskit init

# in a solution: bring it to the tool's version of the template
dotskit upgrade

Every command shows the files it will change and why, and asks before writing; --yes writes without asking. It writes all files or none, then builds the solution. A conflict is marked <<<<<<< solution / >>>>>>> template and the command exits with 2.

What a solution was made from is kept in .dotskit/manifest.json: commit it with the solution.

The template works without the tool; this package is the way to keep a solution up with it.

Product Compatible and additional computed target framework versions.
.NET net8.0 is compatible.  net8.0-android was computed.  net8.0-browser was computed.  net8.0-ios was computed.  net8.0-maccatalyst was computed.  net8.0-macos was computed.  net8.0-tvos was computed.  net8.0-windows was computed.  net9.0 was computed.  net9.0-android was computed.  net9.0-browser was computed.  net9.0-ios was computed.  net9.0-maccatalyst was computed.  net9.0-macos was computed.  net9.0-tvos was computed.  net9.0-windows was computed.  net10.0 was computed.  net10.0-android was computed.  net10.0-browser was computed.  net10.0-ios was computed.  net10.0-maccatalyst was computed.  net10.0-macos was computed.  net10.0-tvos was computed.  net10.0-windows was computed. 
Compatible target framework(s)
Included target framework(s) (in package)
Learn more about Target Frameworks and .NET Standard.

This package has no dependencies.

Version Downloads Last Updated
2.8.0 49 10/28/2026

dotskit keeps a solution up with the template, keeping the team's changes.

- A solution keeps up with the template: dotskit adds services and flags to it and upgrades it to a new version, keeping the team's changes.
- A service generated into a solution adds itself to All.sln.
- Email by flag, with a sandbox that keeps a test stand from mailing real people.
- MongoDB by flag, beside the main database.
- Containers run on a read-only filesystem.
- The test servers start with one command, the same on a developer's machine as in CI.
- Coverage on demand, with a report per service.
- The solution is generated with --Solution; -M false still works.
- The template answers to the short name dotskit too: dotnet new dotskit.

How to update a solution generated from an earlier version: https://github.com/sawking-tech/DotNetSolutionKit/blob/v2.8.0/docs/getting-started/upgrading.md