0

Strange issue, but it is bothering me.

When I tried to deploy msi package is not completely updating the previous version. but the version is been updated in control panel but not UI (changes made in UI is not reflecting).

DetectPreviousVersion = True;
RemovePreviousVersion =True;
Installallausers=true;

The product version is higher number than previously installed version, and changed the product code for each higher version.

upgrade code of the previous installed version and new version are same.

If I remove the previous version manually and then install the latest version then I could see the changes in UI.

Jay
  • 1,869
  • 3
  • 25
  • 44

3 Answers3

1

Proper versioning of your DLL's and EXE's would prevent this.

File Versioning Rules

At the core of any installer is the actual installation of files. Determining whether to install a file is a complex process. At the highest level, this determination depends on whether the component to which a file belongs is marked for installation. Once determined that a file should be copied, the process is complicated if another file with the same name exists in the target folder. In such situations, making the determination requires a set of rules involving the following properties:

•Version

•Date

•Language

Christopher Painter
  • 54,556
  • 6
  • 63
  • 100
  • Since this upgrade is a minor change in existing form,obviously file would exists in target location, so the determination rules will check for version,date & language..here the version is applied to installer not for each dll or forms used in the project. version vice upgrade is increased value even after the form is not been replaced until adding the property REINSTALLMODE to amus. are you saying is there should be file versioning also? guess when installer is given the version then it applies to all the files inside the package!!does anything to do with assemblyinfo.cs inside version? – Jay Jan 30 '14 at 22:40
  • When I change the assemblyinfo.cs -[assembly: AssemblyVersion("1.1.7.0")] [assembly: AssemblyFileVersion("1.1.7.0")]... Then the installer version to 1.1.7 (upgrade).. installation removes the previous version and changes were reflected without the property "REINSTALLMODE"... Assembly version and fileVersion are also need to be versioned following installer version in upgrade to avoid this issue. – Jay Jan 31 '14 at 00:26
  • The evaluations are made for component keyfiles. In managed world AssemblyFileVersion attribute becomes the Win32 File Version resource record. During the build the version is obtained and placed in the File table. During the install the file costin process makes it's evaluations using the information in the File table and the files found on the disk. AssemblyVersion doesn't need to be updated for this purpose. AssemblyVersion only becomes important when placing files in the GAC. – Christopher Painter Jan 31 '14 at 01:53
0

possibly duplicate question:

but for viewers the answer is adding an extra property to msi package using orca.

REINSTALLMODE=amus

amus-updates the all files on upgrade omus- updates files that are only changes as installer identifies

refer to original answer here

Community
  • 1
  • 1
Jay
  • 1,869
  • 3
  • 25
  • 44
0

Older versions of Visual Studio setups used to effectively uninstall all the old files and then install the product and it's files. VS 2008 and later require you to update the file version of files that you want to overwrite in the upgrade.

PhilDW
  • 20,260
  • 1
  • 18
  • 28