我決定使用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位。但是這不應該有所作爲。應該是?有任何想法嗎?
德克斯特摩根