我为.NET 2.0开发了一个ClickOnce应用程序,它运行得很好。如果我点击生成的publish.html
页面上的安装按钮或直接在IE中访问应用程序URL https://<host>:<port>/<path>/<app>.application
,它将按预期安装/启动并运行。
为了让用户更好地开始体验,我现在希望立即开始安装/启动应用程序,而无需用户点击其他按钮或链接。因此,我添加了以下JavaScript代码:
setTimeout(function() {
var iframe = $("<iframe/>")
.attr("id", "autoDownloadFrame")
.attr("src", "https://<host>:<port>/<path>/<app>.application")
.hide();
iframe.appendTo($('body'));
}, 1500);
此代码可以正常启动,例如,自动下载安装程序。它也可以为我的ClickOnce应用程序下载.application
文件。但不幸的是,ClickOnce安装/启动并没有启动我的应用程序。
我认为这可能与Web服务器设置的Content-Type
有关(在这里使用Tomcat 7和Spring 3.2)。但即使在确认(并验证)内容类型设置为application/x-ms-application
之后,自动启动也不会发生。
有关为何会出现这种情况的任何提示?
操作系统:Win7 Enterprise 64位,EN 浏览器:MSIE 9.0,.NET 2.0至3.5可用(当然,自点击开始工作) 协议:使用自定义端口(8080和8443)
测试HTTP和HTTPS提前感谢任何提示! 干杯,比约恩
答案 0 :(得分:0)
我目前的研究和同事的反馈表明,此行为是由Microsoft实施的,目的是阻止用户未明确“请求”的自动应用程序启动(通过显式单击链接或按钮)。所以我认为这不可行,继续“点击此按钮开始”解决方案。
如果我错了,请随时纠正我,在这种情况下我想错了:)
干杯,比约恩
答案 1 :(得分:0)
您可以使用microsoft-edge:http://url/abc.applicaiton网址通过javascript自动下载。 这将在Microsoft Edge中打开clickOnce应用程序,然后依次下载并安装该应用程序。