2013-02-22 175 views
1

好吧,我快要瘋了。Clickonce瘋狂

我們通過clickonce爲我們的UAT用戶部署了一個包,爲他們提供了一個通過HTML頁面鏈接下載的URL。直到最近,我們沒有對任何軟件包進行版本化,所以它們都具有版本1.0.0.0 - 最終的結果是,當我們向UAT發佈新版本時,他們必須先卸載舊版本,然後才能下載新版本。認爲他們是相同的申請身份,否則。由於他們沒有管理員權限,這有點問題,並導致他們不得不刪除c:\ documents和settings \ username ......中的文件以進行clickonce並刪除註冊表項,

最後一個他們安裝的版本是UAT 5.我現在已經構建了一個版本爲6.0.0.0的UAT 6,因爲它的身份,所以如果他們點擊啓動鏈接,它應該自動下載,而不需要刪除5.它確實下載了一些東西,您可以看到它下載了一個軟件包 - 不是直接打開應用程序,因爲它沒有更新 - 但是當應用程序打開時,它仍然是第5版,通過檢查文檔和設置中文件的大小進行確認。

我個人可以點擊相同的URL鏈接,併爲我下載第6版。我使用控制面板 - >添加刪除程序刪除以前的版本,他們不能因爲訪問控制,但這是唯一的區別。

在他們的機器上,我可以刪除所有文件,所有註冊表設置,然後點擊相同的鏈接爲我下載第6版,並且不知何故它們仍然以版本5的下載結束。

任何想法?我在這裏瘋了!

+0

您確定您不只是部署版本號爲6的版本5(您是否發佈正確的東西?) – vcsjones 2013-02-22 16:47:02

+0

您是否嘗試過在客戶端計算機上查看ClickOnce活動日誌以獲取任何線索?也許發生錯誤會阻止ClickOnce將新文件從安裝緩存移動到新程序目錄。請參閱[this](http://msdn.microsoft.com/zh-cn/library/ms404265.aspx)和[this](http://msdn.microsoft.com/zh-cn/library/dd996997.aspx) 。 – 2013-02-22 16:49:32

+0

檢查並確保您正在部署的服務器沒有緩存文件。在用戶機器上運行Fiddler以準確查看它從服務器獲取的文件,並檢查清單以獲取正確的版本號。 – RobinDotNet 2013-02-25 06:51:49

回答

1

聽起來好像客戶端機器正在檢測到有一個新的發佈包,但EXE本身沒有改變。爲了節省時間/帶寬,對於身份未更改的任何程序集,ClickOnce會在本地計算機的高速緩存中引入以前下載的程序集。

換句話說,這聽起來像你正在更新發布版本,但不是裝配版本。要使新組件的標識不同,請務必更新組件版本(在項目屬性>應用程序>組件信息...下)以及發佈版本(在項目屬性>發佈下)。

您也可以在文件版本中(也在項目屬性>應用程序>程序集信息...)中進行測試,但該程序不會在應用程序清單中顯示。