更新我的Windows应用商店应用

时间:2014-02-10 08:58:49

标签: deployment windows-runtime windows-store-apps

我想更新我的Windows应用商店应用,但我需要删除应用程序的本地状态文件夹中的所有内容:

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

我不熟悉更新Windows应用商店应用的过程,而the official documentation并未说明如何清除文件夹,就像重新安装应用一样。

我想知道我是否必须手动执行此操作(使用应用程序的版本号),或者是否有自动执行方式。

1 个答案:

答案 0 :(得分: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)。您可以在没有args的情况下调用ClearAsync来一起清除本地,临时和漫游。

如果出于任何原因您拥有可以迁移而不是重建的状态,那么您可以使用该版本号来检查您需要迁移的内容。

另一种方法是使用带有ServicingComplete触发器的后台任务。这方面的指南是:http://msdn.microsoft.com/en-us/library/windows/apps/jj651556.aspx。您基本上只需要像以前一样调用后台任务ClearAsync和/或迁移状态。