我们在市场上有一个使用 ClickOnce 部署的消费者应用程序。随着时间的推移,我们在使用 ClickOnce 时遇到了各种问题,其中大部分已经解决,但总是有点后悔没有使用简单的 MSI 安装程序。特别是我们希望能够提供正确的离线安装(来自盒装副本),以及更好的多语言安装选项。我们刚刚更新了我们的测试版到一个 AnyCPU 版本,在终于拍摄了一些旧的 32 位 dll 依赖项之后(在你问之前 - 是的,我们的应用程序真的可以从内存地址空间的增加中受益,我们处理了大量数据)。当然,现在我们意识到从 x86 到 AnyCPU 不适用于 ClickOnce,因此似乎是切换到另一种安装技术的理想时机。
所以这里的问题是:我们想从现有的 ClickOnce 安装自动升级到新的安装程序。我们也非常希望保留用户设置 (.config) 文件。如果我们不能,这不是一个完全的交易破坏者,但如果我们不这样做,它会激怒很多用户。
所以非常粗略的游戏计划是这样的:
创建应用程序的新版本并通过 ClickOnce 进行部署。这个新版本基本上是 MSI 安装程序的前端。它以某种方式获取现有的用户设置,启动新安装程序的下载并调用它。然后它将现有设置复制到新的应用程序目录。然后它会自行卸载(本身就是以前的 ClickOnce 安装应用程序)。
原则上我认为这可行,但不确定如何去做。特别是将用户设置移动到新应用程序,并在最后自行卸载。
如果有人有任何提示,或者经历过类似的过程,我很想听听。
应用程序是针对 .NET 4 的 c#。
谢谢,马特