You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何在Nuke.Build 6.2.1中查找并使用DotNetRestore等方法

Nuke.build 空目标实现及扩展方法引用问题解决

一、所需扩展方法的命名空间

核心构建操作的扩展方法都集中在Nuke.Common.Tools相关命名空间下,你需要在Build.cs顶部添加以下引用:

using Nuke.Common;
using Nuke.Common.Tools.MSBuild;
using Nuke.Common.Tools.NuGet;
  • MSBuild命名空间包含清理、编译等基于MSBuild的操作方法
  • NuGet命名空间包含NuGet还原相关方法

二、填充三个目标的具体实现

基于上述命名空间,你可以给空目标添加实际执行逻辑:

Clean 目标(清理项目)

Target Clean => _ => _
    .Before(Restore)
    .Executes(() =>
    {
        MSBuildTasks.MSBuild(s => s
            .SetTargetPath(Solution)
            .SetTargets("Clean"));
    });

Restore 目标(还原依赖)

两种实现方式任选其一:

Target Restore => _ => _
    .Executes(() =>
    {
        // 方式1:使用NuGet命令还原
        NuGetTasks.NuGetRestore(s => s
            .SetTargetPath(Solution));
        
        // 方式2:使用MSBuild的Restore目标
        // MSBuildTasks.MSBuild(s => s
        //     .SetTargetPath(Solution)
        //     .SetTargets("Restore"));
    });

Compile 目标(编译项目)

Target Compile => _ => _
    .DependsOn(Restore)
    .Executes(() =>
    {
        MSBuildTasks.MSBuild(s => s
            .SetTargetPath(Solution)
            .SetTargets("Build")
            .SetConfiguration(Configuration));
    });

三、补充必要的类属性

上述代码中用到的Solution和Configuration需要在Build类中定义:

[Solution] public readonly AbsolutePath Solution;
[Parameter("Configuration to build - Default is 'Debug'")]
public readonly Configuration Configuration = Configuration.Debug;

四、运行目标

完成代码填充后,在命令行执行对应命令即可运行目标:

  • 执行清理:nuke Clean
  • 执行还原:nuke Restore
  • 执行编译:nuke Compile
  • 直接执行nuke会默认运行依赖链最终的目标(如Compile)

内容的提问来源于stack exchange,提问作者Dan McCoy

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.14 04:05:28