VS 2010安装项目的安装

时间:2012-09-05 13:43:12

标签: windows-installer setup-project

我正在尝试在安装较新的MSI期间自动卸载现有版本的MSI。

我提到了N篇文章和博客,这些文章和博客引用了升级代码,产品代码,安装项目的属性(如RemovePreviousVersions,DetectNewerInstalledVersion,版本),AssemblyInfo文件(AssemblyFileVersion)中的DLL版本等......

使用这些信息,我有一个解决方案与我一起完成上述任务。 但是,在这种情况下,维护是这种方法的一个问题。

我从Visual Studio中观察到另外一个执行相同任务的操作。 这恰好执行了我所要求的活动,同样地,我将问题构成如下。请详细说明这个问题......

通过右键单击VS 2010中的安装项目进行”安装“操作,卸载旧版本的产品(无论RemovePreviousVersions属性的值如何),然后继续安装最新版本。当MSI用于安装时会发生(虽然RemovePreviousVersions属性设置为TRUE)。只是想知道在以前的安装过程中触发了什么操作或命令,以便可以使用代码以某种方式应用

希望问题清晰明确..让我知道任何输入.. 提前一百万感谢

1 个答案:

答案 0 :(得分:1)

“安装”操作使用Windows Installer API在启动当前安装程序之前手动卸载旧版本。您无需复制此操作,因为Windows Installer支持主要升级。如果自动升级对您不起作用,则某处出现错误。

使用Orca检查两个MSI包,看看它们是否具有相同的UpgradeCode。此外,ALLUSERS属性在两者中都应具有相同的值。最后,尝试创建verbose log并搜索 FindRelatedProduct RemoveExistingProducts 操作,以了解旧版本会发生什么。