문제

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.

도움이 되었습니까?

해결책

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.

다른 팁

As Cosmin suggested you cannot remove components during repair, but you 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.

라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top