Das Problem, das Sie haben, ist, weil mit WithCriteria
Überladung Sie die Kriterien verwendet werden ausgewertet wird, bevor die Aufgabe ausgeführt wird.
Im Allgemeinen ist dies in Ordnung mit Konstanten/Zustand vor der Ausführung der Aufgabe erstellt.
Mit WithCriteria
hat zwei Überlastungen der one Sie verwenden oben
public static CakeTaskBuilder<T> WithCriteria(
this CakeTaskBuilder<T> builder,
bool criteria
)
Da es eine bool
dauert es bewertet ist, als die Aufgaben erstellt, die nicht funktionieren wird, wenn Zustand & während des Setups oder vorherigen geändert erstellt wird Aufgaben, diese Änderung lösen Sie die below Überlastung
public static CakeTaskBuilder<T> WithCriteria(
this CakeTaskBuilder<T> builder,
Func<bool> criteria
)
Diese über~~POS=TRUNC dauert ein Func<bool>
Kriterien zu verwenden, um Code zu wh Ich werde kurz vor der Ausführung der Aufgabe ausgewertet und kann somit auf jeden Zustand zugreifen, der vor der Ausführung der Aufgabe erstellt oder geändert wurde.
das Update für Ihr Problem ist also nur ()=>
vor Ihren Kriterien hinzufügen und es wird wie folgt faul geladen sein:
Task("Test-NUnit")
.WithCriteria(()=>DirectoryExists(parameters.Paths.Directories.NUnitTestResults))
.Does(()=>
{
});
Danke, funktioniert genau wie beschrieben! –