2010-09-30 50 views
21

可以將ClickOnce配置爲刪除舊的發佈目錄嗎?可以將ClickOnce配置爲刪除已發佈的舊目錄嗎?

或者

有沒有人寫了一些代碼,會刪除掉這些發佈目錄(可能保持過去的10)?

當前,每次發出ClickOnce發佈時都會在IIS服務器上創建一個新目錄。這個NEW目錄包含整個應用程序的一個副本,該應用程序已下載。舊的目錄似乎不再使用,只佔用大量空間。

這是一個正在創建的目錄名稱的示例。正如你所看到的,應用程序版本號正在名稱中使用。
EduBenesysNET_1_0_1_0
EduBenesysNET_1_0_1_1
...。
EduBenesysNET_1_0_1_192
EduBenesysNET_1_0_1_193

我們有194(從零開始)建立與每個目錄呆在那裏。由於一個版本的大小約爲50MB,因此您可以看到如何讓舊的目錄在磁盤空間開始吃掉。

我們的應用程序的工作方式是你總是必須下載最新版本。你沒有選擇跳過下載,所以我希望刪除舊目錄不應該是一個問題。

回答

13

問得好(+1) - 人會認爲這應該是可能以某種方式......

看起來有點接近,雖然揭示了所觀察到的出版行爲是不實際的ClickOnce技術的一個特點,而一個在Visual Studio Publish Wizard的 - 例如參見節的ClickOnce發佈在ClickOnce Publishing Process文件夾結構

如果手動生成或使用或者法師或自定義工具更新ClickOnce應用程序發佈,你是不是限制在該文件夾和文件結構。對於任何特定的ClickOnce出版物,依賴關係鏈中包括以下內容:[...] [重點礦山]

Walkthrough: Manually Deploying a ClickOnce Application得到了相同的結論,即,在通過使用VS的文件夾結構只是一個(合理)會議/辦法。

不幸的是,VS發佈嚮導似乎並沒有提供刪除舊版本,至少它不可見或記錄在某處。但是,考慮到生成的文件夾結構只是構建過程的一個工件,您可能還需要添加一個自定義構建步驟 - 解析詳細信息(即訪問VS自動化屬性以派生最新發布的版本等)是你的問題雖然範圍之外;)

關於你的子問題:

我希望刪掉舊的目錄不應該是一個問題。

絕對不是問題,它只是取決於最終要保留多少這些以便回滾操作,請參閱Can I delete previous old versions from Publishing Location created by ClickOnce?

+0

我沒有添加第二個問題,詢問是否有人編寫代碼來刪除發佈的目錄。好主意歐寶,將其轉化爲一個單獨的問題。然後我會回到這個問題。 – 2010-10-01 21:50:51

2

簡短的回答是,這不是內置於Visual Studio或ClickOnce部署中的內容,您必須找到另一種方法來執行此操作,可能是通過您在服務器上運行的腳本執行的。

如果您將更新推送爲所需更新,則可以刪除除當前版本之外的所有版本。如果你不這樣做,你會想保留兩個版本,以防止用戶恢復版本。

相關問題