2009-08-13 38 views
3

我有一個ClickOnce應用程序,它安裝在客戶端機器上後,第一次啓動時會創建文件夾X,Y和Z.在ClickOnce更新之間保留用戶創建的文件?

現在,當用戶開始使用他/她創建的應用程序這些文件夾中的各種文件。稍後可以使用新版本的應用程序,他/她將應用程序從版本1.0.0.0更新到1.0.0.1。最終結果是再次創建文件夾X,Y和Z(並且爲空),並且用戶看不到由他創建的文件。我們如何傳播這些版本中的文件,並保證第一次安裝應用程序時,將自動創建文件夾X,Y和Z?

回答

4

我正確地認爲這是在應用程序的DataDirectory內創建的文件夾和文件的具體問題?

我能想到的兩種解決方案:

  1. 的更新後,DataDirectory目錄的內容複製到新版本的DataDirectory目錄並放置在一個叫.pre子文件夾。您可以通過編程方式檢查是否使用ApplicationDeployment.CurrentDeployment.IsFirstRun下載了更新,然後編寫自己的遷移代碼以將相應的文件夾從.pre移動到父目錄中。

  2. 一個不同的答案和我們使用的答案是完全繞過ClickOnce DataDirectory,並在用戶的Application Data目錄中設置自己的文件夾(記住爲該文件夾使用.NET別名)。這種方法的缺點是,如果您從「添加/刪除程序」中卸載應用程序,文件夾將不會自動卸載。一些上升空間爲:

    • 的文件夾堅持通過卸載/重新安裝與損壞的ClickOnce緩存打交道時,有時需要(比前幾年那麼頻繁,但仍偶爾的問題)。

    • 這些文件夾跟隨正在使用漫遊配置文件的用戶(我們的經驗是,在漫遊配置文件情況下,ClickOnce目錄未配置爲漫遊)。

    • 的文件夾更容易找到,如果不得不做過度的電話或電子郵件IT支持由於這些數據文件的問題。即使IT人員經常會遇到查找ClickOnce數據目錄(其父目錄已隱藏)的問題,但大多數人可以輕鬆地在Application Data中找到您公司的目錄。 YMMV,如果您出於安全原因需要混淆這些文件的位置。