“Msiexec REINSTALL=ALL REINSTALLMODE=vamus”不清理旧条目
我创建了一个安装程序“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”现在,
如果我使用“msiexec /i test.msi REINSTALL=ALL REINSTALLMODE=vamus”将 test.msi 从版本 1 升级到版本 2,它包含 2 个文件(comp1_file1、comp1_file3) ”,在安装文件夹中我仍然可以看到版本 1 文件“comp1_file2”。
如果我使用“msiexec /i test.msi REINSTALL=ALL REINSTALLMODE=vamus”从版本 2 降级到版本 1,则安装文件夹中存在版本 2 相关文件(comp3_file1、comp1_file3)。
如何在重新安装时删除旧条目(组件/文件)?
我正在使用 installshield 2008 高级版。
I created an installer "test.msi" . It is version-1. test.msi contains 2 components "comp1", "comp2"
comp1 contains 2 files "comp1_file1", "comp1_file2"
In version 2 of test.msi ,
--> a new component added "comp3". It contains 1 file "comp3_file1"
--> "comp1" component is updated. "comp1_file2" file removed and new file "comp1_file3" added Now it contains 2 files (comp1_file1, comp1_file3)
if i upgrade test.msi from version-1 to version-2 using "msiexec /i test.msi REINSTALL=ALL REINSTALLMODE=vamus", in installation folder still i can see version-1 file "comp1_file2".
if i downgrade from version-2 to version-1 using "msiexec /i test.msi REINSTALL=ALL REINSTALLMODE=vamus", in installation folder version-2 related files exist (comp3_file1, comp1_file3).
How to remove old entries(components/files) at reinstall time?
i am using installshield 2008 premier edition.
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(2)
传递组件是正确的选择。 MS 在这里描述了它们:http://msdn。 microsoft.com/en-us/library/aa372462%28v=vs.85%29.aspx
为了跟进 Chris 所说的内容,使用重新安装模式可能会造成一些令人讨厌的事情。如果您包含任何共享组件,则尤其如此。您可以回退其他应用程序所依赖的组件,并且您会发现自己被提示根据正在使用的共享组件中的文件停止看似不相关的应用程序。如果可以的话,避免这种情况确实是件好事。
Transitive components are the way to go. MS describes them here: http://msdn.microsoft.com/en-us/library/aa372462%28v=vs.85%29.aspx
To follow up on what Chris said, playing with the reinstallmode can do some nasty things. This is particularly true if you're including any shared components. You can backlevel components that other applications are depending on, and you can find yourself prompted to stop seemingly unrelated applications based on files in the shared components being in use. It's a really good thing to avoid if you possibly can.
正如Cosmin建议的那样,您不能在修复过程中删除组件,但是您可以在开始新版本的安装过程之前卸载以前的版本。使用InstallShiled 2008 的一种方法是创建一个主要升级来执行此操作。
视频教程。
编辑
正如克里斯托弗所说:有一些方法可以在小升级/维修中删除组件。
请在下面评论。
As Cosmin suggested you cannot remove components during repair, butyou can uninstall the previous versions before starting the install process for the new version.One way to go with InstallShiled 2008 is to create a major upgrade that will do this.
Video Tutorial.
Edit
As Christopher said: There are ways to remove components in minor upgrades / repairs.
Comment below.