ClickOnce应用程序未从计划程序启动

Rya*_*yan 5 c# deployment clickonce scheduled-tasks

我有一个批处理文件,该文件会弹出一个clickOnce应用程序:

@REM The odd PING statements are to create a 5 second wait
@echo off
taskkill /F /IM MyApp.exe
PING 1.1.1.1 -n 1 -w 5000 >NUL
"%USERPROFILE%\Path\To\My\App.appref-ms"
Run Code Online (Sandbox Code Playgroud)

当我双击它时,它可以正常工作:进程被杀死,然后在5秒钟后重新启动。

但是,如果我安排任务,它将终止该进程,但不会重新启动它。

有人知道发生了什么吗?(该任务与我双击批处理文件时登录的用户身份相同,并且运行正常)

谢谢

瑞安

Wiz*_*zou 7

我在Windows Server 2012 R2下有同样的问题。我的ClickOnce应用程序将在手动启动时运行,而不是从Task Scheduler启动时始终运行。

我发现这是由于dfsvc.exe(ClickOnce服务助手)无法从Task Scheduler中正确启动。我的解决方案是将Task指向一个批处理文件,该文件将在启动ClickOnce应用程序之前启动dfsvc.exe:

:: Run ClickOnce service if not already running
tasklist /NH /FI "IMAGENAME eq dfsvc.exe" 2>NUL | find /I "dfsvc.exe">NUL
if errorlevel 1 start "" "C:\Windows\Microsoft.NET\Framework64\v4.0.30319\dfsvc.exe"

\\the\path\to\your.application
Run Code Online (Sandbox Code Playgroud)


wru*_*kie 1

(环境:VS2010,C# 控制台应用程序,更新针对 Win 7 64 上的 .net 3.5)

我无法让控制台应用程序在任务计划程序中运行。我的应用程序已发布到网络文件共享。任务计划程序无法运行 \AutoSync.application,并出现“%1 不是有效的 win32 应用程序”错误。任务计划程序会说 \setup.exe 运行成功,但该应用程序执行的任何过程似乎都没有完成,包括它在关闭之前发送的状态电子邮件。无论我使用 UNC 路径还是字母映射驱动器,都不起作用。我没有尝试发布到本地计算机,这对我来说是不可能的。

手动运行时该应用程序可以完美运行。然后我沿着开始菜单快捷方式使用的路径 - “C:\Users\foo\AppData\Roaming\Microsoft\Windows\Start Menu\Programs\AutoSync”并选择在那里找到的快捷方式。它填充了实际的exe路径“C:\Users\foo\AppData\Local\Apps\2.0\W9BDW4LH.KM0\J6DPJEM9.LT0\auto..tion_a217eb88f33937fd_\AutoSync.exe”。这就是我所需要的。

我的程序现在按每日计划运行,并在完成后向我发送电子邮件。不过,我准备在下次更新后重做我的任务操作。