如何使用 nuke 安装 dotnet 工具
How to install dotnet tool with nuke
我是 Nuke 的新手,正在尝试从 Cake 过渡到 Nuke。
在 Cake 中,我可以选择安装(本地)工具:
#module nuget:?package=Cake.DotNetTool.Module&version=0.3.0
和
#tool dotnet:?package=my.package.id&version=1.0.1
我已经在 Nuke 中试过了:
[PackageExecutable(
packageId: "my.package.id",
packageExecutable: "mypakagedtool.exe",
Version = "1.0.1")]
readonly Tool MyPackagedTool;
但是returns一个:
Assertion failed: Could not find package 'my.package.id' (1.0.1) using:
- Project assets file
- NuGet packages config
我猜这不是针对 dotnet 工具,而是针对 nuget 工具?
我的工作方式是将其包含在 build.csproj:
<ItemGroup>
<PackageDownload Include="MyPackageId" Version="[1.0.1]" />
</ItemGroup>
并在 Build.cs 中:
[PackageExecutable("MyPackageId", "MyTool.dll")] readonly Tool MyTool;
然后可以调用该工具:
MyTool("arguments");
...当然应该设置 nuget.config 以授予对包存储库的访问权限。
在 Nuke Build
中,您可以执行以下操作(此示例适用于 OctopusTools):
nuke :addpackage OctopusTools
这导致 this <ItemGroup/>
元素被添加到 Build (Nuke) 项目的 .csproj
中:
<ItemGroup>
<PackageDownload Include="OctopusTools" Version="[9.0.0]" />
</ItemGroup>
我是 Nuke 的新手,正在尝试从 Cake 过渡到 Nuke。 在 Cake 中,我可以选择安装(本地)工具:
#module nuget:?package=Cake.DotNetTool.Module&version=0.3.0
和
#tool dotnet:?package=my.package.id&version=1.0.1
我已经在 Nuke 中试过了:
[PackageExecutable(
packageId: "my.package.id",
packageExecutable: "mypakagedtool.exe",
Version = "1.0.1")]
readonly Tool MyPackagedTool;
但是returns一个:
Assertion failed: Could not find package 'my.package.id' (1.0.1) using:
- Project assets file
- NuGet packages config
我猜这不是针对 dotnet 工具,而是针对 nuget 工具?
我的工作方式是将其包含在 build.csproj:
<ItemGroup>
<PackageDownload Include="MyPackageId" Version="[1.0.1]" />
</ItemGroup>
并在 Build.cs 中:
[PackageExecutable("MyPackageId", "MyTool.dll")] readonly Tool MyTool;
然后可以调用该工具:
MyTool("arguments");
...当然应该设置 nuget.config 以授予对包存储库的访问权限。
在 Nuke Build
中,您可以执行以下操作(此示例适用于 OctopusTools):
nuke :addpackage OctopusTools
这导致 this <ItemGroup/>
元素被添加到 Build (Nuke) 项目的 .csproj
中:
<ItemGroup>
<PackageDownload Include="OctopusTools" Version="[9.0.0]" />
</ItemGroup>