我决定使用ClickOnce技术来部署我的新WPF应用程序。总的来说,ClickOnce可以像广告中那样工作,但我在引导和框架检测方面遇到了小问题。WPF ClickOnce引导程序在一台机器上出现故障
一些背景: - 我使用标准的Visual Studio生成的publish.htm页面作为我的启动页面。 - 唯一的先决条件是.NET Framework 4.0客户端配置文件。 - 所有使用IE 8的客户端。 - 所有客户端已安装.NET 4.0客户端配置文件。
ClickOnce的工作原理与绝大多数机器一样。 VS生成的JScript会正确检测到框架已安装并向用户显示运行按钮。该应用程序启动得很好。
但是,我在其中一台机器上发现了奇怪的结果。在有问题的机器上,VS生成的JScript告诉用户可能没有安装prereq - 或者说,FAILS检测到框架已经安装。 “启动”链接成功启动应用程序,但“运行”链接指向引导程序setup.exe。为什么它没有在这台机器上检测到框架?
在我看来,框架检测主要是检查浏览器提交的useragent字符串。所以,你在下面看到的是两个UserAgent字符串。第一个来自一台正常工作的机器。第二个来自违规机器。
这一个工程: 2011-01-11 15:14:14 W3SVC1 192.168.0.36 GET /publish.htm - 80 - 72.130.187.100 Mozilla/4.0 +(兼容; + MSIE + 8.0; + Windows + NT 6.0; +三叉戟/ 4.0; + SLCC1; + NET + CLR 2.0.50727 + + +媒体中心+ PC + 5.0; + NET + CLR + 3.5.21022; + NET + CLR + 3.5.30729; +。NET + CLR + 3.0.30729; +。NET4.0C)304 0 0
这一个不是: 2011-01-11 18:49:12 W3SVC1 192.168.0.36 GET /publish.htm - 80 + 76.212.204.169 Mozilla/4.0 +(兼容; + MSIE + 8.0; + Windows + NT + 6.1; + WOW64; + Trident/4.0; + GTB6.6; + SLCC2; +。NET + CLR + 2.0.50727; + .NET + CLR + 3.5.30729; +。NET + CLR + 3.0.30729; +媒体+中心+ PC + 6.0; +。NET4.0C)200 0 0
T两台机器的useragent字符串清楚地表明,“嘿NET 4.0客户端配置文件安装在这里” - 但第二台机器似乎无法检测到它。我不太了解useragent字符串,以便理解前者的工作原理和后者失败的原因。据我所知,唯一的区别在于违规的机器运行64位。但是这不应该有所作为。应该是?有任何想法吗?
德克斯特摩根