cancel
Showing results for 
Show  only  | Search instead for 
Did you mean: 
Amarjeet
Level 7

.Net framework 4.5.Installation and message 'waiting for another install to complete'

I am trying to install the .Net framework 4.5.2 from Patch Installation Package. I am successfully able to launch the setup.exe from custom action.

But setup starts, it halts with message Waiting for Another install to complete.

After careful examination of processes I found that when I launch the .msp package I am using to install the patch there msiexec.exe processes are started. The .net framework detects those processes and stops the installation. If I manually kill those processes the .net framework installation starts and completes successfully.

My question is :

- Is there any mechanism by which I can instruct installation of .net framework to ignore the running msiexec processes.

- I never faced this problem when .net framework 4 is installed with my base DVD package through setup pre requisites. I am using same setup.exe switches. Does anybody know what is difference when setup.exe is launched from pre requisites and custom action.

- Any possible fix for above issue.

Thanks in advance.

Amarjeet
Labels (1)
0 Kudos

(8) Replies
DLee65
Level 13

It sounds like you are installing .NET framework as a custom action rather than a prerequisite.
.NET Framework, since it contains MSI content cannot run within another MSI. Windows Installer can only handle one MSI package at a time. If you insist on installing your prerequisites as a custom action then schedule it at the end of your UI sequence and not in the execute sequence.

IF you schedule this as a UI sequence custom action, then for silent installations you will need to check for the prerequisite to see if it is installed and stop the install if not installed. The user will need to ensure that the prerequisite gets deployed first.
0 Kudos
Amarjeet
Level 7

Hi DLee,

Thanks for your response. Can you please let me know after which sequence I should run this custom action.

Regards,

Amarjeet
0 Kudos
DLee65
Level 13

Amarjeet,

It sounds like you want to schedule this as part of the UI within a basic MSI installation. InstallShield makes this easy by allowing you to use feature prerequisites.
The following site explains some about the difference between a setup prerequisite and a feature prerequisite. http://helpnet.installshield.com/installshield16helplib/PrereqTypes.htm

Upon reading information from this page, InstallShield does not recommend EVER installing .NET Framework as a feature prerequisite, that is during the UI portion of the install, but rather as a setup prerequisite. I was wrong to suggest that this would be possible. I apologize for the misinformation.

Installing .NET Framework as a setup prerequisite will require you to modify your setup package to include a .EXE wrapper. Look in the release settings of your build and make sure that you are creating a setup.exe for the package.

  • Click on Redistributables
  • In the search grid box type in .NET 4.5 (or specify the version you desire to redistribute)
  • Check the appropriate prerequisite
  • Build and test your project


To check your 'setup.exe' settings:

  • Click on Releases
  • Select the release that you normally build
  • Select the Setup.exe tab on the right
  • Make sure the property for 'Setup Launcher' is set to 'Yes'. If not change it and then make appropriate changes to the properties below.


To create a custom Prerequiste for .NET Framework 4.5.1

  • Download the redistributable from Microsoft
  • Make a copy of the InstallShield 4.5 Prerequisite (.prq) file from InstallShield
  • Modify the path to the redistributable file to point to the redistributable that you downloaded from Microsoft. You may want to add this file to your source control so it is always available for every build machine.
  • Change the GUID for the prerequisite package to some other unique value. It does not have to be a GUID but it can be a valid windows path / filename too, just as long as it is always unique. For instance try MicrosoftDOTNET451Redistributable.
  • Validate that the OS conditions for the prerequisite are correct for the 4.5.1 redistributable.
  • Save your changes to the prerequisite file and test.


Note that while I may be comfortable making changes to a PRQ file in Notepad++, if you are not then utilize the Prerequisite editor inside of InstallShield. It allows you to clone the PRQ and modify the settings described above. Also, when you clone a .PRQ file you will want to add this to your source control so that it will be available to every build machine in the same location. When you do this you may need to specify the path to your saved PRQ files on the command line or in the registry. [HKEY_LOCAL_MACHINE\SOFTWARE\InstallShield\20.0\Professional]
PrerequisiteSearchPath="C:\Program Files\InstallShield\2013\SetupPrerequisites",

Hopefully this helps.
0 Kudos
Amarjeet
Level 7

Hi Dan,

Thanks for the detailed information. My requirement is I need to deliver the .NET framework in .msp package. So I can't use pre requisites to add the .net framework.

I am successfully able to add the framework, the only issue is after launching the .net framework setup I get error Another Installation In Progress.( as msp launcher invokes msiexec.exe. If I kill msiexec.exe .net framework setup goes well without any issue.) I am sure there must be some work around in install shield to allow this.

I am saying this because when I launch .net framework installation from pre requisites I do not get this error. So install shield is able to override this condition when setup is run from pre requistes. In this case as well msiexec.exe can be seen running in background. Perhaps installshield is able to ignore running msiexec.exe processes.

Do you know when a setup.exe is launched from pre requisites its launched after which action. If we can find this I think problem can be solved.

Regards,

Amarjeet
0 Kudos
DLee65
Level 13

Amarjeet,

I have bad news for you. Anytime that a prerequisite changes by definition you are changing a major element of your package and this will require a Major Upgrade. A .msp file as you know is a minor upgrade.

Anytime you change the major structure of your installer you should always deliver this as a major upgrade where the previous is uninstalled and the new installed.

I am not aware of any way to deliver 'prerequisites' as a patch. You may be able to stop the minor upgrade if the user does not already have .NET Framework 4.5.1 installed by specifying a system search condition for it. But again, I would never deliver a major functionality change like this as a patch.
0 Kudos
Amarjeet
Level 7

Hi Dan,

Thanks for your advice so far. Its appreciated. I do agree that I am following a non standard process for installing .net framework.

I will update this thread if I am able to find solution for this problem.

Regards,

Amarjeet
0 Kudos
DLee65
Level 13

Amarjeet wrote:
Hi Dan,

Thanks for the detailed information. My requirement is I need to deliver the .NET framework in .msp package. So I can't use pre requisites to add the .net framework.

I am successfully able to add the framework, the only issue is after launching the .net framework setup I get error Another Installation In Progress.( as msp launcher invokes msiexec.exe. If I kill msiexec.exe .net framework setup goes well without any issue.) I am sure there must be some work around in install shield to allow this.

I am saying this because when I launch .net framework installation from pre requisites I do not get this error. So install shield is able to override this condition when setup is run from pre requistes. In this case as well msiexec.exe can be seen running in background. Perhaps installshield is able to ignore running msiexec.exe processes.

Do you know when a setup.exe is launched from pre requisites its launched after which action. If we can find this I think problem can be solved.

Regards,

Amarjeet


Hi Amarjeet,

I was just thinking some more about your questions.
1. When .NET runs as a prerequisite, I am fairly certain that it executes before your main package has loaded.
2. When a MSP file executes, it assumes that all of your required prerequisites are in place and just 'patches' required files from your package.
3. The msiexec.exe that you see running may be just the MSI from the prerequite file. Note that many of these prerequisites .EXE packages just have embedded MSI packages that they launch, much like your setup.exe would work to launch your MSI.
4. I have not worked with patches for a few years, the current company I am working for always delivers as a major upgrade. So, I do not know if technology for Windows Installer has changed at all but it still sounds as if you are still trying to force a behavior that Windows Installer does not intend.

I wish you the best though 🙂 If you find a solution be sure to post back here as I would be interested in knowing if you found a method. 🙂
0 Kudos
Amarjeet
Level 7

Hi Dan,

Thanks for your wishes. Wait for reply from me

regards,

Amarjeet
0 Kudos