将8.1 app的更新存储到uwp app

时间:2016-03-29 11:59:18

标签: windows-runtime win-universal-app

我在商店里有一个Windows Phone 8.1应用程序。现在我已经创建了一个uwp更新。我的问题是: 如果我将应用程序的更新加载到商店中,并且用户执行此更新。应用程序是否被覆盖或卸载然后重新安装? ApplicationData.Current.LocalSettings中保存的设置是否已删除?

thx newone

1 个答案:

答案 0 :(得分:2)

TL; DR; - 从 WP8.1运行时更新时,它会保留 LocalFolder LocalSettings 中的数据到 UWP (使用 Insider预览 - 快速响铃在设备上使用移动设备进行测试。)

我进行了类似的测试,like the last time

  1. 我发布了App的一个Beta版本 - WP8.1 Runtime。
  2. 在手机上成功安装后,我在 LocalFolder 中创建了一个文件,并在 LocalSettings 中设置了值(见下面的代码),
  3. 我已经提交了更新 - 转到商店,选择应用,点击更新然后,过了一会儿,浏览你的文件并选择新生成的appxbundle(我删除旧的WP8.1包),保存并提交。
  4. 一段时间后,我的电话会收到通知,告知应用程序有更新 - 我点击 update
  5. 安装成功后,我看到它是一个新的应用程序,我点击我的特殊按钮检查 LocalFolder LocalSettings 中的值 - 我看到来自WP8.1版本的旧值。
  6. 用于测试的按钮代码:

    private async void Generate_Click(object sender, RoutedEventArgs e)
    {
        StorageFile file = await ApplicationData.Current.LocalFolder.CreateFileAsync("test.txt");
        await FileIO.WriteTextAsync(file, "Something inside");
    }
    
    private async void CheckFile_Click(object sender, RoutedEventArgs e)
    {
        try
        {
            StorageFile file = await ApplicationData.Current.LocalFolder.GetFileAsync("test.txt");
            string text = await FileIO.ReadTextAsync(file);
            await new MessageDialog($"File exists = {text}").ShowAsync();
        }
        catch (Exception) { await new MessageDialog("File desnt exists").ShowAsync(); }
    }
    
    private void GenerateSetting_Click(object sender, RoutedEventArgs e) => ApplicationData.Current.LocalSettings.Values["CHECK"] = "Test value";
    
    private async void CheckSetting_Click(object sender, RoutedEventArgs e)
    {
        if (ApplicationData.Current.LocalSettings.Values.ContainsKey("CHECK"))
            await new MessageDialog($"Setting exists = {ApplicationData.Current.LocalSettings.Values["CHECK"]}").ShowAsync();
        else await new MessageDialog("Setting doesn't exist").ShowAsync();
    }