2012-12-26 97 views
4

我有一个通过ClickOnce(VS 2012)部署到文件共享的Windows应用程序。它被配置为在线应用程序(未安装在客户端上)。我只需指向文件共享并双击该文件即可通过客户端运行此应用程序。我遇到的问题是将其作为客户端上的计划任务运行(客户端实际上是服务器,Windows Server 2008)。但是,如果我创建一个调用ClickOnce应用程序的批处理文件,任务计划程序可以成功调用批处理文件。但我宁愿不必处理创建该批处理文件的额外步骤。从任务计划程序调用ClickOnce应用程序

我Task Scheduler中得到的错误是这样的: 任务计划程序无法启动行动任务的 “\ pathToClickOnceApp” 在实例 “{d5cc956f-c09e-41dc-a04d-a4276f38704e}” “\ TASKNAME”。其他数据:错误值:2147942403.

回答

0

您可以制作一个appref-ms文件,并将其放置在任务调度程序启动的位置,或放在文件共享上(这可能需要其他权限,如'execute')。

然后让任务调度程序启动这个文件。

0

下面是一个示例代码来创建可以调用一个ClickOnce应用程序的任务:

using (TaskService ts = new TaskService()) 
      { 
       // Create a new task definition and assign properties 
       TaskDefinition td = ts.NewTask(); 
       td.RegistrationInfo.Description = "runs clickonce app every 10 minutes"; 

       var trigger = new TimeTrigger(); 
       trigger.Repetition.Interval = TimeSpan.FromMinutes(10);   
       // Create a trigger that will fire the task at this time every other day 

       td.Triggers.Add(trigger); 

       // Create an action that will launch the clickonce app 
       td.Actions.Add(new ExecAction("rundll32.exe", @"dfshim.dll,ShOpenVerbApplication your_clickonce_app_url/clickonce_appname.application", null)); 

       // Register the task in the root folder 
       ts.RootFolder.RegisterTaskDefinition(@"ClickOnce app", td); 


      } 
相关问题