【问题标题】:Can an application start another application installed with Clickonce?一个应用程序可以启动另一个安装了 Clickonce 的应用程序吗?
【发布时间】:2013-02-14 18:17:01
【问题描述】:

我的系统中有许多使用 Clickonce 安装的程序。一些程序需要启动其他程序。是否有一个过程可以确定应用程序是否已安装并启动它,否则从 Clickonce 位置启动安装?

例如,用户 1 已经安装了 Program-A、Program-B 和 Program-C。 Program-A 中的一个选项要求我运行 Program-B,另一个选项要求我运行 Program-F。 Program-B 已安装,而 Program-F 尚未安装。

我总是可以启动 Clickonce 安装,但如果程序已经安装,我该如何找到并启动它呢?

我尝试过的似乎对我有用的一件事是始终启动它

http://MyServer/ClickOnce/Program-F/Program-F.application

但我的用户说这对他们不起作用。

【问题讨论】:

标签: installation clickonce


【解决方案1】:

您是如何启动该链接的?如果它是原始应用程序的安装链接,它应该可以工作。您是使用 IE 或您知道已安装的其他浏览器启动它吗?

process.start("ie.exe", "http://yourserver/yourapp/themanifest.application");

如果您从部署清单(.application 文件)启动并且该应用程序已安装,它只会启动它。如果没有安装,它会安装它。

【讨论】:

    【解决方案2】:
    var sb = new StringBuilder();
    sb.Append(Environment.GetFolderPath(Environment.SpecialFolder.Programs));
    sb.Append("\\");
    sb.Append("Your Company");
    sb.Append("\\");
    sb.Append("YourApp.appref-ms");
    var shortcutPath = sb.ToString();
    Process.Start(shortcutPath);
    

    【讨论】:

    • 你能解释一下这是做什么的吗?
    • 您的公司 = ClickOnce 中的发布者 YourApp = ClickOnce 中的快捷方式名称(例如:Program-B)
    猜你喜欢
    • 2012-02-03
    • 2011-03-27
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-04-18
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多