【问题标题】:How does one pass command line argument to a ClickOnce application?如何将命令行参数传递给 ClickOnce 应用程序?
【发布时间】:2010-09-30 13:41:38
【问题描述】:

我有一个从开始菜单(本地)启动的 Clickonce 应用程序。我希望能够指定一个参数,以便应用程序可以加载某些数据。该应用程序存在于文件共享中,并且只会使用 URL 启动一次(例如 described here on MSDN)。这意味着此链接中描述的方法将不起作用;用户将使用开始菜单中的 .appref-ms 快捷方式启动应用程序。

我无法找到解决方案。是否有可能以某种方式将参数传递给单击一次应用程序?如果是这样,怎么做?如果没有,有什么替代方案?

【问题讨论】:

  • 我感觉这可能会因为您的其他问题而关闭,但是您想通过应用程序的参数来解决什么问题?

标签: .net clickonce


【解决方案1】:

由于您通过 Url 访问部署清单,因此您可以通过查询字符串(例如 http://clickonce.example.com/shell.application?p1=this&p2=that)传递所有这些信息

我打算输入步骤,然后搜索并找到this blog,它基本上列出了所有步骤。我在一个实例中做过类似的事情,没有任何问题。唯一稍微困难的是,你必须在设置好之后重新魔法,但如果你一开始就部署它,你就已经知道如何设置了。

祝你好运!

【讨论】:

  • 尽管这不是我想要的,但我想我可以做到。
  • 我每次使用 ClickOnce 都有同样的感受。它使用起来非常简单,但只有在你做少数几件事时它才能做得很好。因此,这只是确保该工具适合您的情况的问题。如果您有简单的部署需求,ClickOnce 是我用过的最简单的工具之一
  • 我尝试了该博客的解决方案,但在 Windows 资源管理器中,当我右键单击我的“(我的应用程序名称).application”文件时,选择“创建的快捷方式”,右键单击该快捷方式文件,选择“Properties”,将“Target”更改为上述格式,选择“Apply”(或“OK”)并弹出一个窗口,并显示消息:“Problem with Shortcut The name 'http://(My目标框中指定的 ClickOnce 发布文件夹位置)/(我的应用程序名称).application' 无效。请确保路径和文件名正确。”。
【解决方案2】:

此处的所有答案仅适用于 Online ClickOnce 应用程序。 This MSDN Forum postthis blog post 讨论了为离线 ClickOnce 应用程序执行此操作的一些方法。

【讨论】:

    【解决方案3】:

    也许你可以第一次在 URL 上传递一个参数,让应用注意到这一点,并将参数写入配置文件或环境变量等。

    在后续运行中,从配置文件加载

    【讨论】:

      【解决方案4】:

      您将参数作为查询字符串传递并使用 HttpUtility.ParseQueryString,如 this MSDN article 中所述。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2010-11-13
        • 2020-01-01
        • 2020-12-13
        • 2021-05-21
        • 1970-01-01
        • 2013-07-12
        • 2011-05-20
        相关资源
        最近更新 更多