2

我是 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;

但返回一个:

Assertion failed: Could not find package 'my.package.id' (1.0.1) using:
 - Project assets file 
 - NuGet packages config

我想这不是针对 dotnet 工具,而是针对 nuget 工具?

4

1 回答 1

1

我使它工作的方式是将其包含在 build.csproj 中:

  <ItemGroup>
    <PackageDownload Include="MyPackageId" Version="[1.0.1]" />
  </ItemGroup>

在 Build.cs 中:

[PackageExecutable("MyPackageId", "MyTool.dll")] readonly Tool MyTool;

然后可以通过以下方式调用该工具:

MyTool("arguments");

...当然应该设置 nuget.config 以提供对包存储库的访问权限。

于 2020-07-05T14:13:31.037 回答