我有一个 ClickOnce 应用程序,我们在登录时启动并重复执行。安装应用程序后,任务工作正常,但如果我重新启动机器,脚本会运行,但它们无法启动我的应用程序。我在 BAT 文件中添加了日志记录,我知道它已执行,但调用 rundll32 行不会产生任何结果,也不会产生任何错误。
如果我从资源管理器手动运行脚本,它会工作并且任务计划程序执行也开始工作。此外,如果我手动运行 clickonce 快捷方式,脚本将从任务计划程序开始执行。有没有办法验证 dfshim 是否已加载,或者在执行之前加载它?我错过了什么?我尝试清除缓存,这似乎在一台机器上修复了它,但这似乎是巧合,因为它没有在另一台机器上修复它。
首先调用的 VBS 脚本(由任务计划程序调用):
Set WshShell = WScript.CreateObject("WScript.Shell")
obj = WshShell.Run("C:\Users\brnapolitano\AppData\Roaming\FirstAmerican\TaskScheduler\AppReferenceInvoke.bat", 0)
set WshShell = Nothing
第二个调用的 BAT 脚本(由上面的 VBS 调用):
rundll32.exe dfshim.dll,ShOpenVerbShortcut
C:\Users\brnapolitano\AppData\Roaming\Microsoft\Windows\Start
Menu\Programs\FastLocalService\FastLocalService.appref-ms
我想用脚本修复它,但如果这不可能,我会尝试将它添加到启动项中,看看是否能解决我的问题。
最佳答案
我找到了答案(链接如下)。我仍在测试过程中,但它似乎有效。在运行启动快捷方式的命令之前,需要运行 dfsvc(如果未处于事件状态)。
关于batch-file - ClickOnce 应用程序不从任务计划程序执行,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44599106/