2013-04-10 78 views
2

所以我最近通過ClickOnce將我的應用程序部署到了一個Web服務器(確切地說是WAMP),並讓VS2010自動生成網頁和所有爵士樂。用戶能夠很好地下載應用程序。非常奇怪的ClickOnce Web部署行爲(緩存)

當我推出我的第一次更新時,奇怪就開始了。發生2種不同的情況。當然後當網站和安裝,它總是安裝第一個版本,而不是更新。此外,我在應用程序本身中有一個「檢查更新」按鈕,當他們點擊它時會說「沒有更新可用」(使用this code的變體)。

在預感上,我讓他們清除了瀏覽器緩存,然後再次嘗試在應用程序中「檢查更新」按鈕......並注意它的工作。

這是怎麼回事?它是否緩存網頁,因此沒有看到更新?當他們訪問它時,網頁上的文本已經更新,說它是新版本,但是直到他們清除緩存後才能安裝。此外,檢查更新代碼是否也會觸及網頁(如果其他方法也不起作用)?將NO-CACHE HTML行放在自動生成的網頁標題中修復此問題?歡迎任何建議/見解。

回答

2

我想看看你的Apache是​​如何設置緩存的,就像你說的那樣。看看它發出的是什麼標題。確保它正在發送帶有正確MIME類型的.application文件。application/x-ms-application

ClickOnce安裝完成後,它將始終獲得相同的Uri example.com/app/app.application,並將安裝的版本號與剛剛下載的版本號進行比較。當您通過Visual Studio發佈時,它會覆蓋該位置的文件。所以,是的,我可以看到它是一個緩存問題。對我來說,ApplicationDeployment API使用相同的瀏覽器緩存很奇怪,但是誰知道它可能在內部使用IE。

我有我的測試ClickOnce應用程序寫在MSDN的asynchronous example之上。有一個進度字符串,您可以在其中下載每次運行的應用程序。我還沒有看到與您在UNC路徑上或在啓用了靜態Web託管的AWS S3上部署部署相同的問題。這就是爲什麼我認爲這可能是Apache的東西?