从商店更新应用程序后的IsolatedStorage设置

时间:2015-01-16 10:27:34

标签: windows-phone-8.1 updates isolatedstorage

我正在编写Windows Phone 8.1 Silverlight应用程序(不是RunTIME框架)。 我有疑问:

  1. Windows Phone 8.1 Silverlight的应用清单文件是哪个? WMAppManifest或Package.appxmanifest?因为我的项目包含

  2. 我在应用程序的主页中创建了一个方法,它检测到这是第一次运行此应用程序。如果是第一次执行此应用程序,则会创建120个密钥(IsolatedStorageSettings.ApplicationSettings)的注册表,并且应用程序将移至WelcomePage。如果执行不是第一次,则意味着用户之前已打开此应用程序,它会跳过registrycreation方法并直接转到主页。

  3. 当我将此版本1的应用程序上传到商店并且用户安装并使用它时。当我在版本2中向registrycreate方法添加更多密钥并将版本2上载到存储时。这些新密钥将如何创建?甚至,当用户更新应用程序时,注册表创建方法也永远不会运行。

2 个答案:

答案 0 :(得分:0)

  1. “Silverlight”应用清单是WMAppManifest.xml,但您仍需要包含“RT”清单Package.appxmanifest,如果您使用任何需要某些功能的RT命名空间,则应检查Package.appxmanifest中的那些功能也是如此。例如“Internet(客户端和服务器)”,如果您使用的是Windows.Networking.BackgroundTransfer。

  2. 您需要添加一些代码来检查每次运行(或恢复)应用程序时信息或信息结构是否已更改,以便在更新时(以及更改密钥) ,即使你的“第一次运行”代码没有激活,它们也会被添加。有道理吗?

答案 1 :(得分:0)

如果您知道按键编号总是会变大,那么观看按键计数就行了。您还可以在版本中包含一个密钥,以便了解创建数据的版本。

您可以在Windows Phone Silverlight 8.1中使用Windows.Storage.ApplicationData而不是IsolatedStorageSettings。 ApplicationData支持使用ApplicationData.SetVersionAsync method进行版本控制,因此您可以在更新应用程序时安全地更改数据格式。

无论哪种方式,当应用运行时,检查数据的版本是否是应用知道的最新版本。如果没有,则运行您的设置和迁移代码以添加新密钥并替换过期密钥。

数据版本不必与应用版本匹配(您可以在不更改数据的情况下更新应用的版本)。您可以将数据版本常量编译到应用程序的数据处理代码中,并在更改数据格式时对其进行修改。