如何从 TFS vNext 构建步骤中生成一个持续到构建之后的离线进程?
How to spawn an offline process from a TFS vNext build step that would last beyond the build?
似乎如果我的构建步骤产生了一个子进程,该进程将无法在构建结束后继续存在 - 它会被终止。
但我有一个场景,其中触发子进程以离线完成构建不应等待它们完成的某些操作(向 Azure AppInsights 报告指标)。
这个过程在 XAML 构建中运行良好,但现在我们迁移到 vNext 它被破坏了,因为当构建结束时子进程被杀死。
可以做些什么?
最简单的方法是使用任务计划程序安排任务。
使用 Microsoft.Win32.TaskScheduler
NuGet 包的示例:
using (var ts = new TaskService())
{
// Create a new task definition and assign properties
var td = ts.NewTask();
td.Triggers.Add(new TimeTrigger(DateTime.Now.AddDays(-1)));
td.Actions.Add(new ExecAction(MyExe, MyArgs));
ts.RootFolder.RegisterTaskDefinition(MyTaskName, td).Run();
ts.RootFolder.DeleteTask(MyTaskName);
}
似乎如果我的构建步骤产生了一个子进程,该进程将无法在构建结束后继续存在 - 它会被终止。
但我有一个场景,其中触发子进程以离线完成构建不应等待它们完成的某些操作(向 Azure AppInsights 报告指标)。
这个过程在 XAML 构建中运行良好,但现在我们迁移到 vNext 它被破坏了,因为当构建结束时子进程被杀死。
可以做些什么?
最简单的方法是使用任务计划程序安排任务。
使用 Microsoft.Win32.TaskScheduler
NuGet 包的示例:
using (var ts = new TaskService())
{
// Create a new task definition and assign properties
var td = ts.NewTask();
td.Triggers.Add(new TimeTrigger(DateTime.Now.AddDays(-1)));
td.Actions.Add(new ExecAction(MyExe, MyArgs));
ts.RootFolder.RegisterTaskDefinition(MyTaskName, td).Run();
ts.RootFolder.DeleteTask(MyTaskName);
}