【发布时间】:2011-06-16 21:44:39
【问题描述】:
我有一个最初在 VS 2008 中构建的 Web 应用程序和部署项目,它安装了我的应用程序的 1.51 版。我现在正在使用 VS 2010(我的应用程序需要 .Net 4 和 Installer 4.5)并将我的应用程序和部署项目更新到 1.52。如果我在原始系统上运行设置,一切都会按预期工作。
如果我在已安装 1.51 的系统上运行 1.52 安装程序,而不是在安装程序结束时得到 1.52 的完整副本,则会删除 1.51 和 1.52 共有的所有文件(无论是否它们在版本之间有所不同),仅部署了 1.51 中根本不存在的文件,并且我的 CustomAction 没有运行。该设置声称已成功完成。我使用 /l*vx 选项运行设置并使用 Wilogutl.exe 分析日志文件,它显示“未找到错误”和“无需解决方案”。
我已将 RemovePreviousVersions 设置为 True,两个版本的 UpgradeCode 相同,更新了 ProductCode 和 Version。如果我将 RemovePreviousVersions 设置为 false,那么在已经安装了 1.51 的系统上安装 1.52 似乎会给我想要的结果。
不应该在 RemovePreviousVersions 设置为 true 的情况下工作吗?
如果我将 RemovePreviousVersions 设置为 false,在进行升级安装时应该寻找哪些潜在问题?
- 马克
【问题讨论】:
-
在我看来,删除旧版本并没有立即删除,而是将其排入队列以备后用——可能是在使用 PendingFileRename 注册表值重新启动之后。安装是否提示您需要重新启动?如果是这样,您可能想删除旧版本,重新启动,然后安装新版本并再次重新启动...有趣!
-
安装不建议我重新启动。我在 Microsoft Connect 上找到了这个帖子,对一些人有所帮助,但并没有完全解决问题:connect.microsoft.com/VisualStudio/feedback/details/559575/…
标签: visual-studio windows-installer upgrade web-deployment-project