Cake.DotNetLocalTools.Module
3.0.12
dotnet add package Cake.DotNetLocalTools.Module --version 3.0.12
NuGet\Install-Package Cake.DotNetLocalTools.Module -Version 3.0.12
<PackageReference Include="Cake.DotNetLocalTools.Module" Version="3.0.12" />
paket add Cake.DotNetLocalTools.Module --version 3.0.12
#r "nuget: Cake.DotNetLocalTools.Module, 3.0.12"
#module nuget:?package=Cake.DotNetLocalTools.Module&version=3.0.12
Cake.DotNetLocalTools.Module
A Cake Module that extends Cake with functionality to install tools from a .NET tool manifest.
You can read the latest documentation at https://github.com/ap0llo/Cake.DotNetLocalTools.Module
Table of Contents
Overview
Cake allows installing .NET CLI Tools through the #tool
preprocessor directies and Cake.Frosting's InstallTool
method (see Installing and using tools for details).
.NET Core 3.1 introduced the concept of "local tools".
Local tools are listed in a "tool manifest" (dotnet-tools.json
) and run through the dotnet
command.
Cake.DotNetLocalTools.Module
brings these two concepts together.
It reads a list of tools from one or more tool manifests and install's them through Cake's tool infrastructure.
This way, you can easily use the tools from Cake while still having the tools and their versions described in a common format.
Usage
Cake Script
To use the module in a Cake script file, perform the following steps
Add the preprocessor directive to install the module
#module nuget:?package=Cake.DotNetLocalTools.Module&version=VERSION
Install tools using the
#tool
preprocessor directive and a uri scheme oftoolmanifest
:#tool "toolmanifest:?package=.config/dotnet-tools.json"
Cake.Frosting
To use the module in a Cake.Frosting project, perform the following steps.
Install the module package by adding a package reference to your project
<PackageReference Include="Cake.DotNetLocalTools.Module" Version="VERSION" />
Register
LocalToolsModule
with the Cake Host:using Cake.DotNetLocalTools.Module; public static int Main(string[] args) { return new CakeHost() // Register LocalToolsModule .UseModule<LocalToolsModule>() // Continue with the standard setup of a Cake.Frosting project .UseContext<BuildContext>() .Run(args); }
You can not install tools using either the
InstallToolsFromManifest()
method or usingInstallTools()
with a uri scheme oftoolmanifest
:using Cake.DotNetLocalTools.Module; public static int Main(string[] args) { return new CakeHost() // Register LocalToolsModule .UseModule<LocalToolsModule>() // Install Tools (both install options are equivalent) .InstallToolsFromManifest(".config/dotnet-tools.json") .InstallTools(new Uri("tool-manifest:?package=.config/dotnet-tools.json")) // Continue with the standard setup of a Cake.Frosting project .UseContext<BuildContext>() .Run(args); }
Example
Installing tools from a tool manifest is equivalent to installing the tools listed in the manifest using a #tool
preprocessor directive or through InstallTool()
.
For example, a tool manifest at .config/dotnet-tools.json
could look like this:
{
"version": 1,
"isRoot": true,
"tools": {
"nbgv": {
"version": "3.4.231",
"commands": [
"nbgv"
]
},
"dotnet-format": {
"version": "5.1.225507",
"commands": [
"dotnet-format"
]
},
"dotnet-reportgenerator-globaltool": {
"version": "4.8.12",
"commands": [
"reportgenerator"
]
}
}
}
Tools from the manifest can be installed using
#tool "toolmanifest:?package=.config/dotnet-tools.json"
This is equivalent to installing each tool individually:
#tool "dotnet:?package=nbgv&version=3.4.231"
#tool "dotnet:?package=dotnet-format&version=5.1.225507"
#tool "dotnet:?package=dotnet-reportgenerator-globaltool&version=4.8.12"
License
Cake.DotNetLocalTools.Module is licensed under the MIT License.
For details see https://github.com/ap0llo/Cake.DotNetLocalTools.Module/blob/master/LICENSE
Product | Versions Compatible and additional computed target framework versions. |
---|---|
.NET | net6.0 is compatible. net6.0-android was computed. net6.0-ios was computed. net6.0-maccatalyst was computed. net6.0-macos was computed. net6.0-tvos was computed. net6.0-windows was computed. net7.0 is compatible. net7.0-android was computed. net7.0-ios was computed. net7.0-maccatalyst was computed. net7.0-macos was computed. net7.0-tvos was computed. net7.0-windows was computed. net8.0 was computed. 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. |
-
net6.0
- Newtonsoft.Json (>= 13.0.1)
-
net7.0
- Newtonsoft.Json (>= 13.0.1)
NuGet packages
This package is not used by any NuGet packages.
GitHub repositories (1)
Showing the top 1 popular GitHub repositories that depend on Cake.DotNetLocalTools.Module:
Repository | Stars |
---|---|
GitTools/GitVersion
From git log to SemVer in no time
|