我希望能够通过电子邮件链接在用户桌面上启动ClickOnce应用程序。基本上,我构建了一个带参数的有效链接,用户可以单击Outlook中的电子邮件链接,它会自动启动应用程序并传入我指定的参数。
我认为我发现了一些有用的东西。
http://myapplicaitondomain.com/application/MyApplication.Application?param1=14322¶m2=5295
在我看来,在用户计算机上启动CL应用程序,如果尚未安装它,则安装它。应用程序启动并返回整个URL,这意味着我必须为params解析它。
这是正确的方法吗?它可靠吗?如果Chrome是默认浏览器,它似乎不起作用,但只有IE将从URL链接启动应用程序。有更合适的方法吗?如何注册应用程序处理程序并创建特殊格式的链接,会更好吗?该应用程序是一个离线CL应用程序 - 但似乎像我上面演示的那样启动。用户可以通过多种方式打开它 - 但电子邮件链接非常方便,因为我可以通过GUID指示用户将应用程序打开到特定位置。
谢谢!
答案 0 :(得分:3)
通过HTTP启动
目前,仅当使用Internet Explorer打开部署清单的URL时,才会启动ClickOnce安装。只有在将Internet Explorer设置为默认Web浏览器时,才会成功启动从其他应用程序(如Microsoft Office Outlook)启动URL的部署。
参考:http://msdn.microsoft.com/en-us/library/ms228998.aspx
问题:您只能在使用HTTP启动应用程序时传递查询字符串中的信息,而不是使用文件共享或本地文件系统。 (Chrome和Firefox将下载您的.application文件)
参考:http://msdn.microsoft.com/en-us/library/ms172242.aspx
通过自定义协议启动
仅在安装了应用程序时才有效,否则您的自定义链接无效。
一些解决方法但不太可靠:How to check if a custom protocol supported
(由于ClickOnce安全设置与位置等等,您的自定义协议可能存在一些安全问题。)
通过其他应用程序启动
您可以通过其他应用程序启动带有参数的ClickOnce应用程序。
我会使用自定义设置,然后只需使用自定义参数安装您的应用,或者在安装时使用自定义参数启动您的应用。