2014-02-10 22 views
1

我想更新我的Windows應用商店的應用程序,但我需要刪除一切都在應用程序的本地狀態的文件夾:更新我的Windows Store應用

C:\Users\usr1\AppData\Local\Packages\myApp\LocalState 

我不熟悉,將Windows更新的過程Store App和the official documentation沒有說明如何清除該文件夾,就像重新安裝該應用程序一樣。

我想知道如果我不得不手動(使用應用程序的版本號)或如果有自動執行它的方式。

+0

你上傳你的應用程序到Windows商店? –

+0

應用程序的第一個版本已經在商店中。我想推送和更新,也會刪除LocalState文件夾的內容。 – Max

回答

3

讓我先給一點背景。根據設計,應用程序數據在安裝應用程序更新時保留。原因是你的狀態版本(應用程序數據)通常是與應用程序本身版本分開的問題。也就是說,應用程序可以在版本1.3和4.1之間使用,並仍然使用相同的應用程序數據結構。

應用程序數據的版本通過Windows.Storage.ApplicationData.SetVersionAsync(http://msdn.microsoft.com/en-us/library/windows/apps/windows.storage.applicationdata.setversionasync.aspx)設置。這主要與漫遊數據有關,因爲此版本標記確定漫遊數據的哪些不同副本保留在雲中。

現在您正在談論的是本地應用程序數據,而不是漫遊,在這種情況下,您可以使用SetVersionAsync,或者您可以簡單地在自己的應用程序數據設置中維護一個版本號。對於您的場景(這聽起來像是清除各種緩存),使用您自己的設置可能會更好,因爲如果/當您使用漫遊狀態時,您將不必每次更新應用程序都更改應用程序數據版本。

如果您有自己的版本號,那麼只需編寫更新的應用程序,以檢查您不想繼承的版本。如果該版本存在,則調用ApplicationData.ClearAsync(ApplicationDataLocality.Local)(請參閱http://msdn.microsoft.com/en-us/library/windows/apps/hh701425.aspx)。您可以使用無參數調用ClearAsync來清除本地,臨時和漫遊。

如果出於任何原因,您的狀態可以遷移而不是重建,那麼您可以使用該版本號來檢查您需要遷移的內容。

另一種方法是使用帶ServicingComplete觸發器的後臺任務。這是一個指南:http://msdn.microsoft.com/en-us/library/windows/apps/jj651556.aspx。基本上只需要像以前那樣調用ClearAsync的後臺任務和/或遷移狀態。

+0

很好的答案,謝謝!爲了記錄,我正在更改離線模式數據存儲的結構,手動更新它非常繁瑣,而不是在不部署第二個應用程序的情況下重新開始。 – Max