【问题标题】:ClickOnce Settings Not Found When Run from Command Line从命令行运行时未找到 ClickOnce 设置
【发布时间】:2017-06-15 14:48:25
【问题描述】:

我有一个通过 ClickOnce 部署的 Windows 窗体应用程序。在应用程序中,我利用应用程序设置来存储基本连接信息。自从我发布该应用程序并开始日常使用以来的两年中,进行了 200 多次更新,个人用户修改自己的设置并在应用程序重新启动和更新时保留这些设置,我没有遇到任何问题。

但是,我正在向应用程序添加一项功能,该功能允许在任务计划程序中安排某些任务。一切正常(计划任务,调用应用程序并传递正确的参数)但是当程序启动时,设置不会被读取。

我可以通过直接从命令行手动启动应用程序来复制这一点。应用程序打开,但唯一可用的设置是应用程序最初附带的设置。

我的最终问题是:如何从命令行调用我的 ClickOnce 应用程序,并让它像从开始菜单启动一样打开?

谢谢!!

【问题讨论】:

    标签: winforms command-line-interface clickonce


    【解决方案1】:

    看起来答案是让任务计划程序启动在开始菜单快捷方式中找到的 .appref-ms 文件。您不能只指向 .exe 文件。

    【讨论】:

      【解决方案2】:

      这很可能是由命令行在不同用户下启动 ClickOnce 应用程序引起的。

      尝试从命令行或任务计划程序启动 ClickOnce,然后加载任务管理器并查看应用正在运行的用户。如果它在您登录的用户以外的用户上运行,那么您可以以运行它的用户身份登录(如果它不是系统用户)并设置您想要的设置,或者您可以尝试模拟通过任务计划程序获得所需的用户。

      如果这些都不适用,您可以添加一个命令行开关,如果未找到任何设置,则保存一组与您想要的匹配的默认设置。

      【讨论】:

      • 感谢您的想法,它确实让我想到了它,但没有。当我运行应用程序(通过命令行或任务调度程序)时,它显示我是调用它的用户。创建任务时,默认情况下任务设置为仅在我的用户名下运行。
      • 当你通过命令或任务调度运行应用时,clickonce应用有更新时会更新吗?
      • 简短回答 - 是的。
      • 长答案 - 您不能直接从 TaskScheduler 调用 .appref-ms 文件并传递参数。我必须让 TS 调用一个批处理文件,该批处理文件又调用 .appref-ms 文件以及参数。 Asinine,我知道,但它有效。以这种方式工作给了我与用户从开始菜单打开程序相同的功能。我确实打开了自动更新功能,所以如果有可用的更新,截至目前,程序将挂起等待用户交互。我必须从 ClickOnce 中删除自动更新并手动对其进行编码。
      猜你喜欢
      • 2019-07-29
      • 2014-01-28
      • 2013-12-27
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2018-09-14
      相关资源
      最近更新 更多