繁体   English   中英

链接到Start ClickOnce或MSI安装的应用程序

[英]Link to Start ClickOnce or MSI-Installed Application

我正在开发的一个应用程序提出了一个有趣的要求。 对于大多数客户,我们都支持ClickOnce部署,对于需要更多控制安装过程的客户,我们也支持MSI(WiX)包进行传统部署。

但是,无论如何安装该应用程序,当用户单击我们网站上的“启动”按钮时,我都需要它来启动该应用程序。 如果已经通过MSI软件包为当前用户安装了它,则它应该启动当前安装的副本;否则,它将启动当前副本。 否则,它应该安装/更新/运行ClickOnce软件包。 我想我可以使ClickOnce版本启动MSI安装的版本(如果存在),然后快速关闭。 这个问题使我希望通过简单地使两个应用程序具有相同的GUID可以实现,但是我不确定如何做到这一点,或者这是否是个好主意。

创建链接以启动ClickOnce应用程序很简单:

<a href="/path/to/myapp.application">Launch</a>

并且,使自定义协议处理程序注册到MSI并不难:

<a href="myapp:launch">Launch</a>

但是, 似乎无法使ClickOnce应用程序能够处理此新协议,即使我解决了该问题,这也不适用于既未安装又未安装新客户的情况。

是否有相对简单的方法来制作单个Web链接,以启动安装了MSI的应用程序 ClickOnce应用程序?

我从Silverlight应用程序中使用了此技术来调用本地应用程序。 但是,我们必须签署XAP并获得它的信任才能使其正常工作。 我不确定正常的HTML页面如何工作。

将应用程序注册到URI方案

我认为您正在倒退。 如果要调用ClickOnce应用程序(检查更新并运行该应用程序),则可以执行process.start(ieexplore.exe,“ http://myserver.mydomain.com/myapplication/whatever/myapp.application ”) (使用实际ClickOnce应用的URL)。 除了让ClickOnce应用程序调用msi之外,您还可以采用其他方法让msi调用ClickOnce应用程序吗? 还是写一些东西来检查哪个要运行/安装并调用?

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM