【发布时间】:2012-09-05 13:43:11
【问题描述】:
我正在尝试在安装较新的 MSI 期间自动卸载现有版本的 MSI。
我参考了 N 篇文章和博客,其中提到了升级代码、产品代码、安装项目的属性(如 RemovePreviousVersions、DetectNewerInstalledVersion、版本)、AssemblyInfo 文件中的 DLL 版本(AssemblyFileVersion)等......
使用这些信息,我有一个解决方案可以完成上述任务。 但是,在这种情况下,维护是这种方法的一个问题。
我在 Visual Studio 中观察到的另一个操作执行相同的任务。 这完全执行了我需要的活动,并且我已经将问题框定如下。请对此查询有所了解...
"通过右键单击 VS 2010 中的安装项目来执行“安装”操作,卸载旧版本的产品(无论 RemovePreviousVersions 属性的值如何),然后继续安装最新版本。同样没有'在使用 MSI 安装时不会发生(尽管 RemovePreviousVersions 属性设置为 TRUE)。只是想知道在以前的安装过程中触发了哪些操作或命令,以便可以使用代码以某种方式应用相同的操作或命令“
希望问题清晰明了..如有任何意见,请告诉我.. 提前一百万谢谢
【问题讨论】:
-
我用于执行上述活动的另一个选项如下: 1) 将 RemovePreviousVersion 和 DetectNewerInstalledVersion 属性设置为 TRUE。 2) 保持与已安装 MSI 相同的升级代码,但更改产品代码以及新 MSI 的版本。 3) 还要更改每个项目的 AssemblyFileVersion 值。这些设置和更改将有助于替换所有 PE 文件。此活动实际上不会卸载和安装 MSI,而只是更新所有找到的具有不同版本的 PE。因此,在这种情况下,维护是一个问题
标签: windows-installer setup-project