“Msiexec REINSTALL = ALL REINSTALLMODE = vamus”并未清除旧条目

时间:2011-01-17 07:43:23

标签: windows windows-installer msiexec installshield-2008

我创建了一个安装程序“test.msi”。它是版本1。 test.msi包含2个组件“comp1”,“comp2” comp1包含2个文件“comp1_file1”,“comp1_file2”

在test.msi的第2版中, - >添加了“comp3”的新组件。它包含1个文件“comp3_file1” - > “comp1”组件已更新。删除了“comp1_file2”文件并添加了新文件“comp1_file3”现在它包含2个文件(comp1_file1,comp1_file3)

如果我使用“msiexec / i test.msi REINSTALL = ALL REINSTALLMODE = vamus”将test.msi从版本1升级到版本-2,在安装文件夹中我仍然可以看到版本1文件“comp1_file2”。

如果我使用“msiexec / i test.msi REINSTALL = ALL REINSTALLMODE = vamus”从版本2降级到版本1,则在安装文件夹中存在版本-2相关文件(comp3_file1,comp1_file3)。

如何在重新安装时删除旧条目(组件/文件)?

我使用的是installshield 2008高级版。

2 个答案:

答案 0 :(得分:0)

正如Cosmin建议您在修复期间无法删除组件,但可以在开始新版本的安装过程之前卸载以前的版本。

使用InstallShiled 2008的一种方法是创建一个可以执行此操作的主要升级。 Video Tutorial

修改

正如克里斯托弗所说:有一些方法可以在轻微的升级/维修中拆除组件。 评论如下。

答案 1 :(得分:0)

传递组件是要走的路。 MS在此处对其进行了描述:http://msdn.microsoft.com/en-us/library/aa372462%28v=vs.85%29.aspx

为了跟进克里斯所说的话,玩重装模式可以做一些讨厌的事情。如果您包含任何共享组件,则尤其如此。您可以反向调整其他应用程序所依赖的组件,您可以根据正在使用的共享组件中的文件,发现自己被提示停止看似无关的应用程序。如果可能的话,这是一件非常好的事情。