cancel
Showing results for 
Search instead for 
Did you mean: 
DLee65
Pilgrim

Re: Detect installation of .net framework 4.5.2 from System Search

This is what I would expect if another MSI is running.

For testing this I would start with a clean VM that has my original application installed.
I would open Task Manager and view all processes.
Look to see how many msiexec processes are running.
Launch your msp and when you are on the welcome screen see if the number of processes for msiexec jumps. It may because the .msp is a difference file between your original MSI and the bits that changed in the .msp. Even if you are including whole files in your release configuration for the patch, it still has to look at the original MSI cached in Windows\Installer.

When you get to the place where .NET framework should be installing, then look at the number of MSIEXEC processes running. My guess is that you have one already active and this one is waiting for the other to stop.

One thing to watch for is to ensure that all windows updates have been installed. I have seen scenarios where Windows Update launches and starts automatically updating the operating system and I encounter this problem. We always advise the customer to ensure Windows is up-to-date.

But I can almost guarantee that the message you are seeing is because it is waiting for another MSIEXEC process to finish before launching a new one. And for this problem the only solution is to schedule this BEFORE the other MSIEXEC process starts.
0 Kudos
Amarjeet
Pilgrim

Re: Detect installation of .net framework 4.5.2 from System Search

Hi Dan,

You are right. I am testing exactly same way as described by you. Issue of windows update is out of scope because I disabled windows updates before starting installation. Ensured that there no msiexec process.

When I start installation two msiexec process are started. One normal and other in system context. These processes are started by installshield. If I kill one of them .net framework installation proceeds smoothly.

I tried invoking the .net framework as first action, still same issue persisted. Its because as soon as double click msp file these two processes are started.

Regards,

Amarjeet
0 Kudos
DLee65
Pilgrim

Re: Detect installation of .net framework 4.5.2 from System Search

I doubt that 'InstallShield' is starting the MSI. If you crafted this with another tool, such as WIX, you would see the same behavior. It is a fundamental design of the way that Windows Installer works.

I know I saw the same type of behavior when we were using Wise Installer before converting it to InstallShield.

The only solutions available to you that I know of are:

1. Deliver the updated application as a major upgrade. This will ensure that .NET Framework 4.5.2 gets installed properly.
2. Recompile the application so that the version of .NET Framework matches what was used for the original application.


Take what you have learned here back to your project manager and demonstrate why this approach will not work, they are trying to change the architecture of Windows Installer itself. Give them the options that will work and let them make the decision on how to proceed. It is our job as Release Engineers to help others better understand the limits of the architecture.

Good luck.
0 Kudos
Amarjeet
Pilgrim

Re: Detect installation of .net framework 4.5.2 from System Search

Hi Dan,

Thanks for your kind support till date. I will try to convince my authorities.

Regards,

Amarjeet
0 Kudos
Amarjeet
Pilgrim

Re: Detect installation of .net framework 4.5.2 from System Search

Hi Dan,

Last and final question. How install shield behaves when installing pre requisites ?

When install shield invokes setup.exe does it check for running instances of msiexec. If they are found does install shield kills them.

I tried the same by creating stand alone installation which only install .net framework 4.5.2 and does nothing. I faced same problem.

If you are able to find time can you please try installing .net framework 4.5.2 from Install shied Prerequisites.

Regards,

Amarjeet
0 Kudos
DLee65
Pilgrim

Re: Detect installation of .net framework 4.5.2 from System Search

Good questions.

The good part of prerequisites is that the EXE manages the prerequisites for you before the msi even runs.
If the prerequisite does not show up check for the following

1. Are the conditions all true? Edit your prerequisite and just double check the settings.
2. Confirm manually that the testing operating system meets your conditions set in the prerequisite editor.
3. When you compile the setup make sure there are no warnings /errors.

Make sure you are running the setup.exe and not just a compiled MSI. The msi will be bundled inside of the EXE and will launch once all prerequisites are installed.

I can see what I can whip up here if I have time.
0 Kudos
DLee65
Pilgrim

Re: Detect installation of .net framework 4.5.2 from System Search

I was able to successfully create a sample installer with this.

I will attach the project file and prerequisite. Note that my install assumes a layout where I have C:\work\installers\.
I had to delete the downloaded .NET Framework file from the Redistributable folder and the compiled setup so that the file could be uploaded.

My folder structure looks like the following

  • Installers

    • PrerequisiteFiles
    • Redistributables
    • TestProject



I tested the install on a clean windows 7 x86 operating system.
IMPORTANT: The .prq file needs to be modified so that it supports a silent install unless you are OK with the .NET dialogs. You will have to research what the command line should be to make it completely quiet. I just used the settings from the .NET Framework 4.5 Full prq.
ALSO, the PRQ itself assumes a relative location to your project file, just modify the path to the file to fit your needs.
0 Kudos
Amarjeet
Pilgrim

Re: Detect installation of .net framework 4.5.2 from System Search

Hi Dan,

Finally I was able to install .NET framework 4.5.2 from my patch package (.msp). The package works well in GUI and Silent installation with UAC ON / OFF.

My approach is as below.

- Check installation of .net framework from system search and store the result in property. Pretty simple and standard.

- Create two custom actions. One for UI based installation and one for silent installation.

- For UI custom action Return processing is Async.( No wait for completion ) and execution scheduling is always execute. This custom action is absent in UI and exec. sequence.

- On setupcompletesuccess dialog box a button called finish exists. When .net framework is installed this dialog behaves as usual and exits after installation of my product is over.

- I have created another button and few text boxed on this dialog box. This button is called install and the text is visible when .NET framework 4.5.2 is not installed. I have added event for this button. The event invokes custom action written for GUI based installation.

- The second event ends this dialog. By ending this dialog the .NET installation goes smooth. ( if I don't end the dialog I get message....."waiting for another install to complete.........")

- For silent installation the custom action is scheduled in Exec Sequence after ScheduleReboot. Return processing is Async. and In script execution is Deferred execution in System Context.


Benefits of this approach :

- .Net framework installation is invoked after my main installation is over. So even if .Net installation fails due to any reason my main installation is safe.

Let me know if you have any questions ( I am open to accept private messages !)

Amarjeet
0 Kudos
Highlighted
SGSlavendea
Flexera beginner

Re: Detect installation of .net framework 4.5.2 from System Search

0 Kudos
Amarjeet
Pilgrim

Re: Detect installation of .net framework 4.5.2 from System Search

Hi SG,

Thanks. Help from you appreciated. I am not sure why its not working for me.

But anyway by creating a new property I am able to achieve what's desired.

Regards,

Amarjeet
0 Kudos