Jump to content


This is a ready-only archive of the InstallSite Forum. You cannot post any new content here. / Dies ist ein Archiv des InstallSite Forums. Hier können keine neuen Beiträge veröffentlicht werden.
Photo

Install/Uninstall Merge Modules or Objects


3 replies to this topic

fdmourao

fdmourao
  • Members
  • 18 posts

Posted 29 November 2004 - 12:09

Hi there,

My installation project has giving me a lot of work to do and questions keep arising... I apreciate your help and patience.

1- My installation project installs a VB application, so I need to add VB run time files to my installation. In the Objects/Merge Modules View I see:
- (object) Visual Basic 6 Runtime Files
- (merge module) Microsoft Visual Basic Virtual Machine 6.0
As far as I could read, the difference between them is that the first one (Visual Basic 6 RunTime files) installs some other files besides msvbvm60.dll.
Question 1: What is the main difference between objects and Merge Modules? The difference between "Visual Basic 6 Runtime Files" and "Microsoft Visual Basic Virtual Machine 6.0" is just that the former install other files (e.g. for data base access support)?
Question 2: If I add Microsoft Visual Basic Virtual Machine 6.0 merge module to my project, during installation, does InstallShield checks if the target Machine already has the VB Virtual Machine and under that condition decides to install or not to install the module?
Question 3: If InstallShield does not do that, and installs the VB virtual machine module unconditionally on a target machine that already had the VB virtual machine version, isn't there the risk of InstallShield (during uninstall) uninstall the VB virtual machine installed by InstallShield and also uninstall the pre-existent VB virtual machine version in the target machine?


2- I'm also trying to install a feature conditionally, i. e. if SQL Server is installed on the target machine.
Question 4: Is there a better way to check if Microsoft SQL Server is installed in the target machine than the one showed in InstallShield Help: by checking the registry?

Thanx for your help.
Dário




Stefan Krueger

Stefan Krueger

    InstallSite.org

  • Administrators
  • 13,269 posts

Posted 29 November 2004 - 21:59

1: Objects and Merge Modules basically serve the same purpose. The difference is: Merge Modules can only be used in Windows Installer (MSI) setups. Therefore InstallShield developed (somewhat) a similar technology for their InstallScript projects. In recent InstallShield versions they also incude a Merge Module Holder Object, which can wrape Merge Module to make them available for InstallScript projects. So Objects are more native to InstallScript projects than Merge Modules are (Merge Module add additional overhead). Objects are developed by InstallShield, Merge Modules are (often) provided by the manufacturer of the redistributable file, e.g. Microsoft.

2: The merge module only includes one file. It will be installed if it doesn't exist on the target machine, of if the existing file has a lower version number.

3: I think the VB runtime file will not be uninstalled at all.

4: I think the registry is a good way to check for SQL Server.

fdmourao

fdmourao
  • Members
  • 18 posts

Posted 30 November 2004 - 10:51

>1: Objects and Merge Modules basically serve the same purpose. The difference is: Merge Modules can only be used in Windows Installer (MSI) setups. Therefore InstallShield developed (somewhat) a similar technology for their InstallScript projects. In recent InstallShield versions they also incude a Merge Module Holder Object, which can wrape Merge Module to make them available for InstallScript projects. So Objects are more native to InstallScript projects than Merge Modules are (Merge Module add additional overhead). Objects are developed by InstallShield, Merge Modules are (often) provided by the manufacturer of the redistributable file, e.g. Microsoft.

Ok. I understood. Thanx

>2: The merge module only includes one file. It will be installed if it doesn't exist on the target machine, of if the existing file has a lower version number.

I didn't understand... what about the Visual Basic 6 Runtime Files object. It includes 9 files.
a) What does InstallShield do in this case?
a1) Checks the existence and version of each file?
a2) If only one pre-existent file has a lower version number, InstallShield installs only that file, or installs the whole object?

b)My problem is: what will happen during install and uninstall if I add the VB runtime object to my setup, and if I run it in a target machine which has already installed for instance Visual Studio 6.0 (which has already some files for vb runtime)? I don't have to worry?

>3: I think the VB runtime file will not be uninstalled at all.

>4: I think the registry is a good way to check for SQL Server.
OK. Thanx

Stefan Krueger

Stefan Krueger

    InstallSite.org

  • Administrators
  • 13,269 posts

Posted 30 November 2004 - 17:48

I'm not absolutely sure about the inner working of InstallShield's VB 6 object, but I would expect it to install all the files, but only if there isn't a nerwer version. If some files exists and others don't it should install the missing files.

You shouldn't have to worry bout shared copies of the VB files. Either these files will not be uninstalled at all (considered system files), or they will only be removed if their reference count drops to zero.