【发布时间】:2020-09-11 20:56:35
【问题描述】:
我的应用是用 WPF C# 编写的,我使用 MSIX 应用程序项目直接从 Visual Studio 将其导出为通用应用。
我只是无法让设置在更新之间保持不变。我在MainWindow_Loaded 事件中使用了以下代码:
Settings.Default.Upgrade();
Settings.Default.Save();
Settings.Default.Reload();
我尝试保持程序集信息版本相同,只是增加 appx.manifest 中的版本,但它不起作用。
我注意到,每次应用更新时,它都会创建一个新的唯一命名的父设置文件夹(每次都有一个新的哈希),并且子文件夹名称是程序集的版本。文件夹结构是这样的:
App.exe_Url_dfvfmfjs1qo33zsag1ay5w1s0rwg0u53/0.2.10.0/user.config
App.exe_Url_tazrvujdga5ujjarnahpkoscv5zbkgl0/0.2.10.0/user.config
我认为这可能与它不断生成新哈希而不是将新版本作为子文件夹放置这一事实有关,这就是升级不做任何事情的原因。
目前我发现的唯一信息是使用Settings.Default.Upgrade()
当我的通用桌面桥应用更新时,我应该如何将旧版本设置转移到新版本?
【问题讨论】:
-
您能否分享更多详细信息,您如何使用 Visual Studio 制作 MSIX 包?
-
我查看了案例更新,是正确的。
-
好的,所以我想没有更好的方法可以做到这一点,只能编写您自己的传输方法(复制到 UWP 设置和从 UWP 设置复制)或同时使用两者。我可以尝试将我的所有设置迁移到 UWP 设置并在 ClickOnce 部署中使用它,但我不确定结果会是什么(如果在更新 ClickOnce 应用程序时设置会正确升级)。如果我尝试,我会在这里发布更新。
标签: c# wpf windows-10-universal desktop-bridge