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