全新的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/