c # - Sådan kører du en eksisterende planlagt opgave med argumenter?

Indlæg af Hanne Mølgaard Plasc

Problem



Jeg har en .NET-applikation kørende, og jeg vil have det til at køre en opgave, som jeg allerede har planlagt med Windows Task Scheduler. Opgaven er skrevet som sin egen konsol ansøgning.


Jeg forsøgte at notere argumenterne i funktionen: Kør (arg1, arg2), men ved læsning af dokumentationen, som jeg har lært, er dette ikke korrekt.


Opgaven ville slette bestemte typer poster (defineret som en enum)


ASP.NET App :


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


Opgave


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


Lige nu, når jeg ASP.NET-applikationen, udbreder den opgaven, men går ud af en indeksfejl, hvilket giver mening, da args ikke er defineret.

Bedste reference


Jeg har gjort meget forskning og
Du kan ikke planlægge en opgave i task manager, så kør den dynamisk med parametre. Enhver parameter, du kører den med, er en del af definitionen af ​​den planlagte opgave, hvilket giver mening.


Når det er sagt, er der en vej rundt om dette: I din kode kan du flyve en ny opgave og registrere den med dine parametre, som er adresseret i @Mikaal Anwars link ovenfor, men hvis du har brug for det at kalde opgaven med nogle andre parametre, skal du lave en anden identisk opgave, men med forskellige parametre. Dette kan være problematisk, fordi du siger, hvis du forsøger at køre den planlagte opgave som en anden bruger end den, der kalder opgaven, skal du udsætte brugerens info, når du registrerer opgaven (blandt andet). Men, hvis disse typer ting ikke er et problem, så er dette en perfekt anvendelig løsning.


Alternativt besluttede jeg i mit tilfælde at ringe til min sekundære Console App som en underproces. Det har andre problemer, som en planlagt opgave ikke har, men det tillader mig at passere i nye parametre hver gang.