C# 通过带有参数的电子邮件启动ClickOnce应用程序

C# 通过带有参数的电子邮件启动ClickOnce应用程序,c#,url,clickonce,C#,Url,Clickonce,我希望能够通过电子邮件链接在用户桌面上启动ClickOnce应用程序。基本上,我会构造一个带有参数的有效链接,用户会在Outlook中单击电子邮件链接,它会自动启动应用程序并传入我指定的参数 我想我找到了一些有效的方法 在我看来,这似乎是在用户计算机上启动CL应用程序,并在尚未启动时安装它。应用程序在这个过程中启动并返回整个URL,这意味着我必须为参数解析它 这样做对吗?它可靠吗?如果Chrome是默认浏览器,它似乎不起作用,但只有IE会从URL链接启动应用程序。还有更合适的方法吗?注册一个应

我希望能够通过电子邮件链接在用户桌面上启动ClickOnce应用程序。基本上,我会构造一个带有参数的有效链接,用户会在Outlook中单击电子邮件链接,它会自动启动应用程序并传入我指定的参数

我想我找到了一些有效的方法

在我看来,这似乎是在用户计算机上启动CL应用程序,并在尚未启动时安装它。应用程序在这个过程中启动并返回整个URL,这意味着我必须为参数解析它

这样做对吗?它可靠吗?如果Chrome是默认浏览器,它似乎不起作用,但只有IE会从URL链接启动应用程序。还有更合适的方法吗?注册一个应用程序处理程序并创建一个特殊格式的链接会更好吗?该应用程序是一个离线CL应用程序——但似乎像我上面演示的那样启动。用户可以有多种方式打开它,但电子邮件链接是一种方便,因为我可以传递GUID来指示用户将应用程序打开到特定的位置


谢谢大家!

通过HTTP启动

目前,只有在使用Internet Explorer打开部署清单的URL时,才会启动ClickOnce安装。仅当Internet Explorer设置为默认Web浏览器时,其URL从其他应用程序(如Microsoft Office Outlook)启动的部署才会成功启动

参考:

问题:当应用程序使用HTTP而不是使用文件共享或本地文件系统启动时,您只能在查询字符串中传递信息。(Chrome和Firefox将下载你的.application文件)

参考:

通过自定义协议启动

仅在安装应用程序时有效,否则自定义链接不起作用

一些变通方法,但不太可靠:

(由于位置等的ClickOnce安全设置,您的自定义协议可能存在一些安全问题。)

通过其他应用程序启动

您可以通过另一个应用程序启动带有参数的ClickOnce应用程序



我会使用自定义设置,然后只需使用自定义参数安装应用程序,或者在安装时使用自定义参数启动应用程序。

传入应用程序的参数将根据用户查看的电子邮件而变化。基本上,最好的解决方案可能是注册一个最可靠的自定义处理程序(FireFox/Chrome)。