前段时间,Google终于从Chrome中pulled NPAPI support获得了Chrome中的ClickOnce支持。 Chrome仍然是一款流行的浏览器,ClickOnce对用户来说非常方便。因此,我试图为ClickOnce应用程序(特别是Outlook的VSTO加载项)和Chrome浏览器提供部署用户体验。
以下是我尝试的替代方案:
- 推荐用户安装ClickOnce Chrome扩展程序(Meta4 ClickOnce启动器,Windows Remix ClickOnce处理程序,CacheNet ClickOnce for Chrome等)。所有这些实际上都安装了一个单击处理程序应用程序,它为.VSTO文件启动.NET处理程序。从Chrome 55.X开始,所有这些都不再有效,因为Chrome也阻止了以前使用过的.exe安装程序。即使修复了这些,这意味着用户必须下载并安装第三方.exe文件,这基本上使得ClickOnce无用:我可以将我自己的安装程序打包为.exe(见下)。
- 让用户下载并运行bootstrapper文件(setup.exe)。该文件是使用ClickOnce应用程序生成的,它只是一个要下载的文件,它从网络中提取其余内容。但是,截至目前,Chrome,SmartScreen以及任何防病毒用户都可能会对setup.exe进行下载,尽管它正在由适当的CA进行签名(除非您有数百万的下载)。这又是一个交易杀手。
- 使应用程序清单可在本地运行。好的,Chrome不知道如何处理.VSTO清单,但至少它会下载它们。如果我以某种方式烹饪.VSTO清单,以便当用户双击它时,它只是开始部署怎么办?好吧,我们有80%,除了今天这个确切的情况导致“部署和应用程序没有匹配的安全区域。”。看起来ClickOnce假设如果文件是从本地硬盘驱动器启动的,它将自动“本地”,整个部署也应该是“本地”。所以这个选项也已经死了。
- 要求用户在IE中打开链接。最后的手段基本上是承认你的失败,并做大约2001年的事情 - 要求用户在IE中打开链接或整个下载页面。
最后一个选项有效,但这种用户体验是2016年标准的尴尬,我的PM可能会说“用它来点击地狱,抓住wix或IS,做一个普通的安装程序”。
因此问题:
我是否遗漏了一些选项(您可能已尝试过哪些选项)或者是否正确评估ClickOnce当前的情况?
更新:如果来自MSFT的人读到这些:那些人,ClickOnce具有很大的部署和更新潜力。你能否考虑从清单中删除该死的TargetZone
功能,或者至少确保在你只需双击启动清单文件时它仍然可以运行。我认为如果没有它,选项#3可能会起作用,这不会使整个事物无法用于60%的互联网...; - )