C# 如何使用参数运行现有的计划任务?

C# 如何使用参数运行现有的计划任务?,c#,asp.net,windows,arguments,taskscheduler,C#,Asp.net,Windows,Arguments,Taskscheduler,我有一个.NET应用程序正在运行,我希望它运行我已经用Windows任务计划程序计划的任务。任务作为其自己的控制台应用程序编写 我尝试在函数Run(arg1,arg2)中列出参数,但在阅读文档后,我发现这是不正确的 该任务将删除某些类型的记录(定义为枚举) ASP.NET应用程序: using (var ts = new TaskService()) { var deleteRecords = ts.FindTask("DeleteRecords"); deleteRecords

我有一个.NET应用程序正在运行,我希望它运行我已经用Windows任务计划程序计划的任务。任务作为其自己的控制台应用程序编写

我尝试在函数Run(arg1,arg2)中列出参数,但在阅读文档后,我发现这是不正确的

该任务将删除某些类型的记录(定义为枚举)

ASP.NET应用程序

using (var ts = new TaskService())
{
    var deleteRecords = ts.FindTask("DeleteRecords");
    deleteRecords.Run(); //Want to Pass Args into this task
}
任务

namespace DeleteRecords {
    class Program {
        static void Main(string[] args) {
             string recordName = args[0];
             string recordType = args[1];
             //Then get and Delete Delete Record
        }
    }
}

现在,当我打开ASP.NET应用程序时,它会生成任务,但退出时会出现索引外错误,这是有意义的,因为没有定义参数。

我做了大量的研究和分析 您不能在任务管理器中计划任务,然后使用参数动态运行它。运行它时使用的任何参数都是计划任务定义的一部分,这很有意义

也就是说,有一种方法可以解决这个问题:在代码中,您可以动态地安排一个新任务并使用您的参数注册它,但是如果您需要使用其他参数调用该任务,则需要使用不同的参数创建另一个相同的任务。这可能是有问题的,因为如果您试图以调用任务的用户以外的其他用户的身份运行计划任务,则在注册任务时需要公开该用户的信息(除其他外)。然而,如果这些类型的东西不是问题,那么这是一个完全可用的解决方案

或者,在我的例子中,我决定将我的辅助控制台应用程序作为子进程调用。它还存在计划任务没有的其他问题,但它允许我每次传入新参数。

查看一下您是否尝试过此功能?