.net-core - Cake Clean 任务在蛋糕构建时被跳过

标签 .net-core cakebuild

全新的Cake项目,build.cake写成Setting Up A New Project , 添加到 net5.0 控制台应用程序。

运行 dotnet cake 时,Clean 任务会被 runner 自动跳过。

我运行了 dotnet cake --target="Clean"--verbosity=normal 并收到了这个:

错误:发生了一个或多个错误。 (无法达到目标“清洁”,因为它因标准而被跳过。)

不知道跳过任务的标准是什么。

我的build.cake:

var target = Argument("target", "Test");
var configuration = Argument("configuration", "Release");

///////////////////////////////////////////////////////////
// TASKS
//////////////////////////////////////////////////////////

Task("Clean")
.WithCriteria(c => HasArgument("rebuild"))
.Does(() => 
{
    CleanDirectory($"./LucroMei/bin/{configuration}");
});

Task("Build")
.IsDependentOn("Clean")
.Does(() => 
{
    DotNetCoreBuild("./LucroMei.sln", new DotNetCoreBuildSettings
    {
        Configuration = configuration,
    });
});

Task("Test")
.IsDependentOn("Build")
.Does(() => 
{
    DotNetCoreTest("./LucroMei.sln", new DotNetCoreTestSettings
    {
        Configuration = configuration,
        NoBuild = true,
    });
});

///////////////////////////////////////////////////////////
// EXECUTION
//////////////////////////////////////////////////////////

RunTarget(target);

最佳答案

脚本中的Clean 任务定义为criteria ,看看这一行:

.WithCriteria(c => HasArgument("rebuild"))

这意味着只有在指定条件的情况下任务才会运行。条件是HasArgument("rebuild") ,它试图在指定的其他参数中找到名为 rebuild 的参数。

如果您像这样运行脚本,Clean 目标将运行:

dotnet cake --rebuild

关于.net-core - Cake Clean 任务在蛋糕构建时被跳过,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/67004083/

相关文章:

.net-core - 如何避免 NuGet 出现兼容性警告?

c# - 使用 C# 构建脚本

c# - 如何在 c# cake build 中创建任务以使用 FTP 上传文件?

cakebuild - 有条件地加载 .cake 文件

c# - 使用 Oracle Managed Driver Core 的 asp.net core docker 容器。打开连接时抛出 ORA-00604 和 ORA-01882

asp.net-mvc - 在 MVC 中使用 dotnet core 时如何删除 ErrorViewModel

docker - 如何设置Dockerfile,使容器OS为Ubuntu?

.net - 在csproj文件中多目标时生成错误

mono - 使用 MonoDevelop 或 Cake/XBuild 编译解决方案给出不同的结果

azure-devops - 同一分支的版本碰撞仅适用于第一次碰撞提交