我为.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可用(当然,自点击开始工作)协议:测试HTTP和HTTPS,两者都带有自定义端口(8080和8443)
提前感谢任何提示!干杯,比约恩
我目前的研究和同事的反馈表明,此行为是由Microsoft实施的,目的是防止用户未明确“请求”的自动应用程序启动(通过明确单击链接或按钮)。所以我认为这不可行,继续“点击此按钮开始”解决方案。
如果我错了,请随时纠正我,我想在这种情况下错了:)
干杯,比约恩
您可以使用microsoft-edge:http://url/abc.applicaiton url通过javascript自动下载。这将在microsoft edge中打开clickOnce应用程序,然后下载并安装应用程序。