'How to install dotnet tool with nuke
I am new to Nuke, trying to transition from Cake to Nuke. In Cake I have the option to install (locally) tools with:
#module nuget:?package=Cake.DotNetTool.Module&version=0.3.0
and
#tool dotnet:?package=my.package.id&version=1.0.1
I have tried this in Nuke:
[PackageExecutable(
packageId: "my.package.id",
packageExecutable: "mypakagedtool.exe",
Version = "1.0.1")]
readonly Tool MyPackagedTool;
but that returns a:
Assertion failed: Could not find package 'my.package.id' (1.0.1) using:
- Project assets file
- NuGet packages config
I guess this is not for dotnet tools, but for nuget tools?
Solution 1:[1]
The way I made it work, was to include this in the build.csproj:
<ItemGroup>
<PackageDownload Include="MyPackageId" Version="[1.0.1]" />
</ItemGroup>
and in Build.cs:
[PackageExecutable("MyPackageId", "MyTool.dll")] readonly Tool MyTool;
then the tool can be invoked with:
MyTool("arguments");
...and of course nuget.config should be setup to give access to the package repository.
Solution 2:[2]
Within Nuke Build
you can do the following (this example is for OctopusTools):
nuke :addpackage OctopusTools
This results in the this <ItemGroup/>
element being added to the .csproj
of the Build (Nuke) project:
<ItemGroup>
<PackageDownload Include="OctopusTools" Version="[9.0.0]" />
</ItemGroup>
Sources
This article follows the attribution requirements of Stack Overflow and is licensed under CC BY-SA 3.0.
Source: Stack Overflow
Solution | Source |
---|---|
Solution 1 | TheRoadrunner |
Solution 2 | Aage |