ClickOnce 应用程序未从调度程序启动

问题描述 投票:0回答:2

我有一个批处理文件,它将反弹 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"

双击它时效果很好:进程被终止,然后在 5 秒后重新启动。

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

有人知道这是怎么回事吗? (该任务以我登录的同一用户身份运行,就像我双击批处理文件一样,一切正常)

c# deployment clickonce scheduled-tasks
2个回答
11
投票

我在 Windows Server 2012 R2 下也遇到了同样的问题。我的 ClickOnce 应用程序将在手动启动时运行,而在从任务计划程序启动时并不总是运行。

我发现这是由于

dfsvc.exe
(ClickOnce 服务助手)未从任务计划程序正确启动所致。 我的解决方案是将任务指向一个批处理文件,该文件将在启动 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

1
投票

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

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

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

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

© www.soinside.com 2019 - 2024. All rights reserved.