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