情况如下:
我为我的.NET应用程序创建了一个安装项目,它使用特殊的程序集,并定义了一些在安装过程中调用的自定义操作。如果计算机上已安装旧版本的应用程序,则安装项目将设置为检测以前的安装并执行自动升级。
我想要做的是在安装过程中通过一些自定义操作检测我是否正在升级已安装的版本 - 如果这是真的,我正在升级哪个版本(它可能是以前安装的MSI包的版本)
我试图在安装(安装,提交,卸载)的各个阶段进入调试器,并且在每种情况下,旧版本已经从磁盘中删除,所以我无法访问odl exe并读取装配版本。
这样的事情是否可能?或者在调用自定义操作时已经太晚了?
答案 0 :(得分:0)
不幸的是,直接使用VS Setup项目无法实现
但你可以使用Orca - 在“RemoveFiles”之前重新安排DetectOldVersionCA 要么 - 最佳决策:使用相同的UpgradeCode向“升级”表添加行,将版本从VersionMin移至VersionMax,并键入“ActionProperty”属性名称,如(OLDFOUND),如果找到旧版本的程序,将设置该属性名称