InstallShield Tips and Techniques

April 26, 2009

Tutorial: Adding Setup Prerequisites to InstallShield package

Filed under: Reference Materials — shieldmaster @ 1:11 pm

Recently I was working on a project and it required the Sage Data Objects to be installed for the application to work correctly.  Already packaged setups, I had to come up with a strategy to install them with my application package – built as a Basic MSI project.  After finding out the Sage packages were built as a InstallScript MSI package I knew they would collide unless I nested them (deprecated) or ran them as Immediate Custom Actions – which I detest because the client may cancel the install during the dialogs, but the Sage was forced on their workstations. 



Finally I decided to “repackage” them as Setup Prerequisites, so after completing this I decided to create a simple tutorial to guide others in this task.  Hope it helps!


Note:  All dialog screens are from InstallShield v2009.





First, look at the Redistributables selection – the middle panel shows you the final results of our created prerequisite.  In this case I had to create three (3) separate one, for each applicable version that was to be distributed.  Note the names are somewhat wordy – I initially used “SDObj15” but when it was installing, it was so cryptically it was unusable.  So write it out so the customer knows what is being installed.



The setup prerequisites will end up being stored in the sub-directory “SetupPrerequisites” under the location where InstallShield was installed.  In my case it’s “C:\Program Files\InstallShield\2009\SetupPrerequisites”.  They will be stored as PRQ files (my example would be “Sage Data Object Engine v15.prq”) – so be sure to stage them into your Source Repository afterwards before you misplace them!


To get started, we need to open the Prerequisites Editor – accessible from the “Tool\Prerequisites Editor” dropdown menu choice.  You will be presented with this blank panel:






Go ahead and save this using your new name (example:  Sage Data Object Engine v15)


Now select the first tab “Properties” and let’s review:


Prereq Properties




Note the pre-generated “unique identifier” that is associated with this Prereq – it’s used to stage the separate file in the Windows Temp directory during extraction and execution.  Preserve its value.   Add a description for clarity. 


If the file is of considerable size, you may want to consider hosting the file on a website.  This will work if you are certain that every customer will be installing on a network connected workstation.  Remember there are some installations that are secure networks and are not allowed internet capability – this should be your guide as to where to host it or incorporate it within the setup.  An example of the web site would be


Prereq Conditions


The next tab is “Conditions” which we can modify to see what conditions this EXE will run under:





There is a condition that we want to occur before the prereq for Sage Data Object v13 needs to meet before we consider installing it.  Select the button Add to create the first condition.




For this Prereq, I am looking for the existence of the file “sg50SdoEngine150.dll” that would have been installed into the Windows System32 file.  In addition I am checking that the version number is at least the one delivered with the EXE itself.  Obviously I would have to have installed the Sage setup to gather this information.  I just could have easily looked in the registry for the GUID under “HKLM\SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall” and set to condition to install the Prereq if that registry did not exist.


Remember you can chain the conditions together.  For example if I was installing the Microsoft Office 2007 Primary Interop Assembly to support a MS Word plug-in, I would want to check for both:

  • Office 2007 was installed
  • Office 2007 Word was installed
  • Office 2007 Primary Interop Assembly was not installed





Prereq “Files to Include”



The next tab is the “Files to Include”, which allows us to lock down the files that are to be installed.




Here, I include both the EXE and its associated Setup.ISS file – which is critical to run silently. 

Note that the files are hard-coded!  You must change it depending on where you stashed the EXE/ISS files. 


To be honest I did not evaluate whether It was possible to use a InstallShield path reference, such as <ISProductFolder> – but under the time constraints I did not evaluate that.  I remember that IS 12 finally allows a path reference for storing the setup after a build – quite a few releases after incorporating that technique.


Now the nice thing about the unique GUID Identifier we saw in the first panel, is that it segregates the files for this Prereq from other Prereq’s that are with the project.  In this situation, the ISS file is a silent parameter file used to provide dialog sequence for the InstallScript MSI Sage project.  Each Prereq that we will create (v13, v14 and v15) will have a similar named “Setup.ISS” – so we don’t have to worry about clashing the files.



Prereq “Application to Run”


The next tab “Application to run” allows me to point to the EXE with the simple “/s” parm to run it silently.





A simple drop down menu allows you to set the correct file amongst the files you included.


Prereq “Behavior”


The next tab “Behavior” offers some basic criteria on what to do if it requires reboot.





The available selections are geared towards supporting the “Chained MSI’s” capable with Windows Installer 4.5.  Since I know the Sage DO does not require a reboot, I was not worried about which I put here.


Prereq “Dependencies”


The final tab “Dependencies” allows you to have one run before the other. 






In our case, we want this Prereq to run AFTER the “Sage Data Object v14.prq” – which itself will run after “Sage Data Object v13”! – Ok, we haven’t built those yet – so save this one, go build the other two and return to this panel to set the execution order!





Final Edits

Now that the setup prerequisites have been created, we need to go back and make some final edits to them. 


Within the InstallShield project, you should be able to see your new prerequites listed in the Redistributables/Setup Prerequisites panel:




1)  Select the checkbox on each one to inject it into the project. 


2) Right-click each one and select properties.  Ensure each is set to “Extract from the Setup.exe”



3)  Right-click and verify “set prerequisite order” – as shown here. 



Now, to my initial confusion, this panel seems to duplicate the Prereq “dependencies” we used earlier, that panel dealt only with sequencing the prerequisites – this one deals with the other non-related prerequisites.


Make the Sage objects come after the .NET setup’s, and before the SQL Server (Not really important re: SQL Server since that one runs after the dialogs are selcted.)  Ensure that v14 follows v13 and v15 is the final one!


Final item – go to the Releases panel and ensure that the element for your release media (7.00.0001/Release in the example) has “InstallShield Prerequisites Location” value set to either “Extract from Setup.exe” or “Follow individual selections”.




Otherwise, you will lose your religion trying to determine why the Sage EXE file are written to sub-dir under the Setup.exe file! :->}





  1. Thank you VERY much for a really useful article. I was really stuck as I had created a bunch of custom prerequisites (in InstallShield 11.5) but I didn’t know how to make them appear in the redistributables view or add them to my installer.
    The mistake I made was I had saved my .prq files to the wrong location (for InstallShield 11.5 this is: C:\Program Files\Macrovision\IS11.5\SetupPrerequisites).
    Your article put me right in seconds. Thanks again.

    Comment by sicnarf — July 27, 2009 @ 7:16 am

  2. Useful article for editing setup prerequisites.

    However, I just had someone ask me to change the text in the Setup Prerequites dialog that launches before the installer proper and I have discovered that there is nowhere in InstallShield 2008 that allows you to edit the dialog text. Another bright idea — a preconfigured installer dialog that cannot be edited.

    So all that you seem to be able to have is (can’t change it): “[Program X] requires that the following requirements be installed on your computer prior to installing this application. Click Install to begin installing these requirements.”

    Comment by Peter Kosenko — March 24, 2010 @ 5:39 pm

    • I know – it can be frustrating to want to change text – or bitmaps and not have the opportunity. But it was only IS 12 that you could have multiple registry checks on a prereq – so think “baby steps”…

      Comment by shieldmaster — March 24, 2010 @ 9:28 pm

  3. Thanks! This helped me out!!

    Comment by Swati — April 12, 2010 @ 11:45 pm

  4. muy buen tuto

    Comment by nixs — May 2, 2010 @ 2:25 pm

  5. This articles is very helpful for my preject. I really to thank to article writer and this web page. Thank u all.

    With thanks and regards,


    Comment by ganesh — May 10, 2010 @ 8:23 am

  6. Great! Thanks a lot.

    Comment by Seevali — August 8, 2010 @ 2:22 am

  7. Hi there,
    Is there a way to customize the setup prerequisites based on configuration in a InstallScript Project ?

    Comment by Soundararajan — November 22, 2010 @ 2:01 am

    • If you are referring to Execution time – it is not possible. The Setup Prerequisites are handled within the bootstrap setup.exe. This handling is done before your MSI is launched, so by the time your MSI has gained control to launch Custom Actions, the prerequisites have been installed.

      If you are referring to Build time, it might be done. Each Media selection can hold it’s setup prerequisites – but I have not done anything like tailor the prerequisites. Try fishing thru the InstallShield forum for any suggestions…


      Comment by shieldmaster — November 22, 2010 @ 10:21 pm

  8. We keep the projects on a shared directory because any of us could launch a build. Is there a way to path the custom prerequisite files so that everyone doesn’t have to have a local copy? I’ve got the rest of the project working that way for dependencies, code etc. Thanks!

    Comment by Patrick Buick — February 11, 2011 @ 4:13 pm

    • Patrick,

      I am sure there is a method to isolate it. Let me devise a method and I will respond.


      Comment by shieldmaster — February 12, 2011 @ 12:24 am

    • I have spoken to a couple of people who “assure” me it can be done – but I haven’t been able to determine it. Let me do some testing myself. Does anyone have the clue to prevent the prerequisites from being on the build machine versus staged in a network share?


      Comment by shieldmaster — November 3, 2011 @ 6:30 pm

  9. Hello,

    I converted my project from InstallShield 2008 to InstallShield 2010 and use integrated prerequisites like “Microsof .NET Framework 3.5”.
    After building my realese, when I launch the setup.exe on computer where .NET Framework 3.5 is not installed, the prerequisites is not installed. It seems that my is ignoring the prerequisites.

    Could some one help me?


    Comment by Maf — February 22, 2011 @ 4:05 am

    • Maf
      Check the following:
      1) Ensure the new .PRQ and supporting files are copied to the correct directory (such as “C:\Program Files\InstallShield\2011\SetupPrerequisites”)
      2) Open the Prerequisites panel in the IS project and ensure you see and check these prerequisites to ensure they make it into the new project


      Comment by shieldmaster — November 3, 2011 @ 6:27 pm

  10. Excellent article! Thank you! That last step of embedding the prerequisites into the setup.exe was very key for me! Thanks again!

    Comment by Roman Bystrianyk — May 11, 2011 @ 10:25 am

  11. thanks budddyyyy

    Comment by Manoj — July 16, 2011 @ 4:06 am

  12. Hello,

    I am very new to Installshileld. could you please tell me how to create the .prq file? Also, I tried placing an exe file, renamed to .prq in the C:\Program Files (x86)\InstallShield\2011\SetupPrerequisites folder, did not apprear under the redistributables. I also compared the files in the redistributables section with the SetupPrerequisites folder, they seem to be differnet. Are the all redistributables listed pulled from C:\Program Files (x86)\InstallShield\2011\SetupPrerequisites directory?

    Comment by Param — September 22, 2011 @ 12:52 pm

    • Actually the PRQ file is created when you use the Prerequisite editor (dropdown menu – Tools | Prerequisite Editor). If you view that IS Folder, you will see both PRQ files and the associated EXE’s. The PRQ files that you find in the IS folder are specifically formatted XML documents – use any editor to view. I have noticed that the new PRQ may not appear in the Redistributables folder until your save and reopen the .ISM

      Hope this helps!

      Comment by shieldmaster — September 22, 2011 @ 6:48 pm

  13. Great …Really Very thanks to you…

    Comment by sakthi — September 28, 2011 @ 8:11 am

  14. Great …It was very helpful.

    Comment by sakthi — September 28, 2011 @ 8:12 am

  15. Is it possible to check whether an existing windows-service is running as part of pre-requisite? Say for example IIS Admin Service is running before setup?

    Comment by Vasant — October 3, 2011 @ 4:13 am

    • The setup prerequisites concept only allow you to analyze the registry or files to determine if a 3rd party setup should be run. What you are looking for is to run a Custom Action very early in the UI sequence that will check if IIS Admin Service is running, then set a condition code or error message that will alter processing. The Custom Action could be InstallScript or VBScript to accomplish this.


      Comment by shieldmaster — October 3, 2011 @ 8:00 am

  16. Is there a way to combine prerequisites? In other words, I want to ensure that a version SQL server 2008 is installed (it doesn’t matter which version), but I don’t want to make every version of SQL 2008 a prereq. install. I’m looking for an ‘OR’ possibility in the prerequ. installs.

    Comment by Mike — November 9, 2011 @ 2:15 pm

    • I have not seen that capability to link/combine the prerequisites together. That would be a good question for the InstallShield folks, as a enhancement to the Editor.


      Comment by shieldmaster — November 10, 2011 @ 1:49 am

  17. My prerequisite work very fine except that it doesn’t appear any window that inform me about prerequisites installs. Do you know why is the reason? Thanks for article, it helps me a lot!

    Comment by Nicoleta — November 16, 2011 @ 7:33 am

    • Nicoleta
      I don’t truly understand your question. Are you saying that during the installation, a window does not appear that displays the prerequisites that are to be installed? If that is you question, then your PRQ logic did not trigger any prerequisites to be installed. Each line must resolve as TRUE for the prerequisite to be staged for installation. Ensure that 1) the prerequisites are not already installed, or 2) alter the registry entry of a known prerequisite to trigger the PRQ logic

      Comment by shieldmaster — November 16, 2011 @ 11:35 pm

  18. Hi Nicloeta

    With IS 2010 I’m able to check multiple registry for prerequisite check, but not able to get any handle to the prerequisite status check dialog.
    I can find in one of the thread you have mentioned unfortunately there is no customization possible with prior versions to IS12. Is there any to get the notifications from this dialog.

    I just want to give proper information to the end user rather than the using the standard message given by IS.

    1. An error occurred while downloading the file “web address”. What would you like to do?
    2. The files for installation requirement “Prerequisite name” could not be found. The installation will now stop. This is probably due to a failed or canceled download.

    Comment by Chinmaya — November 21, 2011 @ 2:34 am

  19. I am building a prereq for Visual C++ 2010. It came as a prereq for another application. When I finish the build of the project and it copies the prereq’s to the server, it fails to create the folders structure inside the prereq folder on the server. For example: in the structure (server\share\app\version\) there is a folder called ISSetupPrerequisites\{4ac….} ) In this folder there are some files at the root (setup.exe and such). Within this folder {4ac…} thee are supposed to be the language folders (1028, 1031, 1033…) but at build Installshield throws the error that it cant copy the files from C:\..\SetupPrerequisites) to ISSetupPrerequisites\{4ac….}. How can create that structure? The files are added into the prereq from the individual language folders i.e. 1028 and the path in the prereq reflects that.

    Comment by Stefan Bergmann — February 3, 2012 @ 4:23 pm

    • Stefan
      I may not be able to assist in this issue – typically all of my setup prerequisites are either embedded within the setup (if they are small) or pulled from the web portal. In your case it may be that the original location does not have the complete set of language folders referenced by the .PRQ file. I don’t see a problem with just manually copying all of the Prerequisite files to the staging folder. After all, once the Prerequisite is launched, as long as the files in correctly in place – it doesn’t matter when/how they were placed there, it should work correctly.


      Comment by shieldmaster — February 4, 2012 @ 2:46 am

  20. Hello,

    is it possible, to install a “prerequisite” after the Setup got launched?
    I want to ask the user whether he want to install a sql express version or he have his own DB.
    Only when he choose to install the sql express the prerequisite should be installed.



    Comment by Khaine — July 10, 2012 @ 5:09 am

    • If you have a feature in which you are selecting Database scripts, you can set the prerequisite to be installed only if the feature is selected. BUT note you cannot ask whether the client wants to install SQL Express or use his own Database.

      I can’t think of a way to ask if they want SQL Express or to use their own DB.


      Comment by shieldmaster — July 30, 2012 @ 5:04 pm

  21. Hi,

    I am using Installshield 2009. I wanted to create setup in such way that any user(admin or non admin) can run it it can install application successfully.
    Please help me out for this issue


    Comment by Savio — July 30, 2012 @ 2:33 am

  22. I need to check the java version is equal or greater than jre1.6 in the target system. So I have written this “”

    But in a system, which has jre1.4, InstallShield should not prompt the user to install jre1.6.

    Can you please help me to proceed?

    With Regards,

    Comment by Karthikeyan — August 3, 2012 @ 1:07 am

    • The previous one doesn’t show the conditions. I did check whether jre 1.6 available or not by selecting the condition type as 2, comparison as 32 and gave the registry path as Java runtime environment, filename as current version and return value as 1.6. I am looking for 1.6, if it is less than 1.6, install 1.6 before install my software. But in the target system with jre1.4, Installshield is not prompt to install jre1.6. Can you please help me?

      Comment by Karthikeyan — August 3, 2012 @ 1:14 am

  23. Do you know if it is possible to abort the installation with an error code if a setup prerequisite failed to install? I see “Abort the setup” option in IS 2012 on the behavior tab but no place to enter a code. I would like to be able to act accordingly outside of the install based on what prereq failed. Thanks in advance.

    Comment by Bill — October 23, 2012 @ 4:27 pm

    • You can’t interact with the Setup Prerequisite’s, so if one fails you won’t be told about it. You do have capability in the PRQ to set a condition on what to do if it fails, but I don’t trust that. What you can do is to create a System Search that will look for the registry entry that a successful install will create (typically “HKLM\Software\Microsoft\Windows\CurrentVersion\Uninstall” and use in a condition that will allow you to trigger a error message if the registry entry was not found.


      Comment by shieldmaster — October 23, 2012 @ 7:02 pm

      • That sounds like it might do the trick. Thanks!

        Comment by Bill — October 24, 2012 @ 8:43 am

  24. Hello, I begin with IS2012 Spring edition and I have curious problem.
    I added two files to prerequisites and everything works, but after installation, it open “ISSetupPrerequisites” folder. Is it possible to avoid this action ? This is annoying when I re-install the software.

    Comment by Martin — November 20, 2012 @ 4:47 am

    • Martin,
      If you select your setup prerequisite and right-click and choose ‘Edit Properties’, you will see three choices. The one selected might be “Copy from Source Media” which is the default – and when chosen will create sub-directory “ISSetupPrerequisites” next to your setup.exe and store the prereq there. Choose either “Download from the Web” if you customers have internet access, or “Extract from the Setup” if you don’t mind having the Setup be bloated in size – but it will install the prereq much faster. In addition, go to the Releases section in left pane, choose the Release configuration and go to the ‘Setup’ tab. Ensure the same choice is selected for the entry “InstallShield prerequisites Location” – which overrides the individual selection.

      Comment by shieldmaster — November 20, 2012 @ 10:45 pm

      • I tried these two options. It doesn’t create the “ISSetupPrerequisites” folder with setup.exe, but when I run the setup it still shows the folder but with the following path: C:\Users\MARTIN\AppData\Local\Temp\ Previous it opened [SETUPEXEDIR]\ISSetupPrerequsites path. In my *.prq file I have two *.msm files not *.exe files and IS can’t find any executable file and shows folder to choose the correct file.

        Comment by Martin — November 21, 2012 @ 3:37 am

  25. Hi I noticed a behavior in my InstallShield project that I don’t quite understand. I have a setup prerequisite added that simply executes two .msm files and the odd thing is that it always opens the IsSetupPrerequisites folder after completing this task. Is this a default behavior for launching .msm files? When I added a test prerequisite that executes an .exe file it did not open the IsSetupPrerequiste folder, and when I separated those two .msm files into two setup prerequisites then they opened the IsSetupPrerequisites folder twice!
    PS: I did try the solution you gave to Martin above and it does not work for me – the folder is still being opened.

    Comment by toblakai666Struna — November 22, 2012 @ 4:15 am

  26. I’m really enjoying the theme/design of your site. Do you ever run into any browser compatibility issues? A couple of my blog visitors have complained about my site not working correctly in Explorer but looks great in Safari. Do you have any advice to help fix this problem?

    Comment by Nannie — January 9, 2013 @ 5:40 pm

  27. Really nice article. Written in simple, understandable manner. Thanks.
    I am running into a strange problem. Not getting how to fix. If any one could help, really appreciate. My problem is..I have many prerequisite in my installer(.NET framework 3.5 and 4.0, Java etc). They are executed in sequence. Problem I am facing is, after installing few of these(usually .NET Framework), my main installation stops(quits without any errors). I wont get any errors but if I click on setup again, it resumes from that point.

    Comment by Basha — January 17, 2013 @ 5:56 am

    • It seems to me that one of the prerequisites is causing the situation. Try to launch each one via DOS command box using the parameters that you are using. Observe the effects – there might be a dialog box that is hidden.
      Keep us posted with your results.


      Comment by shieldmaster — January 18, 2013 @ 12:28 am

      • Thanks Shieldmaster. I solved the problem but couldn’t realize the exact cause.seems its something to do with reboot prompt from prerequisite. As per us suggestion i tried running each prerequisite from DOS prompt. they work fine there. But when put into instalshield, i get the problem. To solve it, i supplied ‘norestart’ and return codes for reboot in “Application to Run’ tab. Also played around handling reboot condition in “Behavior ” tab.


        Comment by Basha — January 25, 2013 @ 12:01 am

  28. This site appears to be very useful. I just inherited the installer maintaining responsibilities at my company and am having trouble wrapping my head around some stuff. I am trying to add Expression Encoder 4 as a prerequisite (it is an exe). Whenever it downloads from the web and attempts to install it will eventually throw an error saying “The installation of Expression Encoder 4 SP2 appears to have failed.” Then asks if I would like to continue with the installation. However, Expression Encoder did successfully install. Any ideas of what could be causing this error?

    Comment by Mike — January 24, 2013 @ 5:05 pm

    • Congratulations Mike – you have interesting days ahead! 🙂

      Most likely the culprit is the .PRQ file that is associated with the EXE does not have the correct Product GUID noted in the conditions. Essentially in the Conditions should be a GUID that represents the value in the registry (HKLM\Software\Microsoft\Windows\CurrentVersion\Uninstall\{9999-9999-9999999}) that should be there after a successful install. Normally the condition would reference the registry value as NOT being present before it would be allowed to be installed. After it is installed, the check is to verify that the Conditions are met – and if not it assumes the installation fails. (Note: there also could be a registry value/entry that is checked as a condition as well).

      I have found that quite a few PRQ files contained errors – even from Microsoft.

      Hope this helps!

      Comment by shieldmaster — January 24, 2013 @ 7:59 pm

      • This was the culprit. Thanks for taking the time to explain what is going on behind the scenes. What was happening actually makes sense now. Thanks, I will continue to follow your blog.

        Comment by Mike — January 25, 2013 @ 9:17 am

  29. Hi.. installshield Team..I am new using installshield . i have a small query about prerequistes. I have create application and added prerequisites and create setup as singleimage. When i run the setup.exe it install well fine , but it bring up temp folders while being installation that temp folder contains prerequisites files . I don’t want to show temp folder..Can you guide me please how to prevent these temp folders (I want install as Silent ) .

    Comment by victor — January 30, 2013 @ 12:44 am

    • That is interesting that it displays the TEMP folders during installation. Try setting the Silent Operation key value in the Command line parm – so it forces the Prerequisite to normally install silently.


      Comment by shieldmaster — January 30, 2013 @ 9:29 pm

      • Hi All,
        I am stuck with prerequisite creation again. Please help me. My problem definition goes like this.
        I want to create a prerequisite for a driver. But sadly this contains multiple files and folders. And there is no option to add folders to prerequisites editor. I can not change directory structure of driver as there are scripts inside which use it in a fixed way. How can I solve this problem?


        Comment by Basha — February 1, 2013 @ 2:35 am

      • I understand your situation – and when I encountered a similar situation I resolved it with a utility (PackageForTheWeb – a free utility from InstallShield that came with IS 10.5 – you could use any other utility such as Zip2Exe..). The PFTW allowed me to zip up the files and directory structure and package it within an EXE. When launched the EXE would unzip in the TEMP folder and give control to any internal file – this allowed me to create the EXE external with PFTW and then within the Prerequisite Editor I pointed to the EXE and configure it to launched the EXE. Once the EXE was triggered during running the prerequisites, the EXE unpackaged itself and then executed the proper component – and cleaned up afterwards.

        Hope this helps!

        Comment by shieldmaster — February 2, 2013 @ 1:07 am

  30. Thank you sir. that’s a great idea. I will try it.


    Comment by Basha — February 4, 2013 @ 12:41 am

  31. […]  If you need a great tutorial on this subject check out the Shieldmaster blog – Here!  Great stuff and tutorials on […]

    Pingback by VDI – Windows Desktop Re-purposing (part 2) — February 5, 2013 @ 10:50 am

  32. This artical has solved my problem…


    Comment by Mohammed Mustafa — February 27, 2013 @ 2:07 am

  33. Hi! Do you know if they make any plugins to assist with Search Engine
    Optimization? I’m trying to get my blog to rank for some targeted keywords but I’m not seeing very
    good success. If you know of any please share. Thank you!

    Comment by free download yahoo messenger — March 3, 2013 @ 8:07 am

    • No I don’t – but maybe some of the readers might assist.


      Comment by shieldmaster — March 4, 2013 @ 1:49 am

  34. Hi..! I have a basic MSI project which also has prerequisite. Through prerequisite I am running a .reg file, which writes certain values into registry. On x86 based systems everything is fine. But on x64 systems I am getting a problem. My .reg file is executed during installation but its unable to write values to registry. Even flash message says, values are written to registry but they are not getting written in actual sense. If I run .reg file separately(not thru installer), I am able to change registry. Please help me resolving this.

    Comment by Basha — March 4, 2013 @ 3:43 am

    • Remember the setup prerequisite does not run with the same privileges as the MSI installation – so you might be hitting that issue. In addition, remember that on a 64bit OS:
      • if the executable is a 32bit it is going to be “redirected” to the WoW6432section of the registry – so any direct API writes may fail
      • Not everywhere in the registry is writable – when you are running in Command Box you are doing so as the user or Administrator, I don’t know what impersonation the setup prereq is running
      You might be able to package the setup as a MSI and take advantage of the Deferred Custom Action to perform the registry write – it runs as system impersonation (is that a word?…)

      Hope this helps!

      Comment by shieldmaster — March 7, 2013 @ 7:29 pm

      • Thanks shieldmaster. I am able to solve the issue. As you are telling, it was a issue with “registry redirect”. My application is of 32 bit type and it was trying to read values from regular folder ‘HKEY_LOCAL_MACHINE\SOFTWARE\my_product’ instead of ‘WoW6432’ folder. As of now I have disabled redirection while writing the values. Things are fine.

        Comment by Basha — March 7, 2013 @ 11:48 pm

  35. Will this work with InstallShield LE?

    Comment by Phil — December 10, 2013 @ 1:15 pm

    • I can’t answer that Phil, I have not used the new LE version embedded within Visual Studio 2013. Has anyone the experience/information that can answer Phil’s question?


      Comment by shieldmaster — December 10, 2013 @ 2:25 pm

      • You can include pre-defined Prerequisites in InstallShield LE or you can attempt to define your own with a text editor. You don’t have access to the GUI to create your own PRQ file.

        Comment by Michael Wasson — September 10, 2014 @ 2:48 pm

  36. […] Tutorial: Adding Setup Prerequisites to InstallShield … – Apr 26, 2009 · Thank you VERY much for a really useful article. I was really stuck as I had created a bunch of custom prerequisites (in InstallShield 11.5) but I didn’t …… […]

    Pingback by How To Fix Installshield Tutorial Errors - Windows Vista, Windows 7 & 8 — November 10, 2014 @ 11:11 am

  37. When i installed for first time installer skipping the prerequisites, if I run for second time installing all the prerequisites. when I saw the debug log of setup.exe (setup.exe /debuglog) it saying that “Skipping prerequisite ‘ABC.prq’ because it was installed before the reboot”

    Comment by sathish — October 25, 2016 @ 8:34 am

    • Sounds like the log was from the initial installation where you skipped the prerequisites. Otherwise I don’t know why that happened.

      Comment by shieldmaster — October 25, 2016 @ 6:26 pm

  38. Definitely, what a splendid website and instructive posts, I surely will bookmark your site.Best Regards!

    Comment by Mack Jobst — November 28, 2016 @ 12:58 pm

  39. Hi

    On the properties Tab when I edit the Pre-requisite for CRREDIST2008_x86 – how do I get the Unique Identifier ?

    Thank you in adavnce for your response.

    Comment by ssglogic — September 1, 2017 @ 12:00 am

    • You can generate a GUID using InstallShield, just create a new project and go to the Information Panel and generate a new Product Code GUID – then transplant it to the prerequisite panel.

      Comment by shieldmaster — September 1, 2017 @ 12:54 pm

RSS feed for comments on this post. TrackBack URI

Leave a Reply

Fill in your details below or click an icon to log in: Logo

You are commenting using your account. Log Out / Change )

Twitter picture

You are commenting using your Twitter account. Log Out / Change )

Facebook photo

You are commenting using your Facebook account. Log Out / Change )

Google+ photo

You are commenting using your Google+ account. Log Out / Change )

Connecting to %s

Blog at

%d bloggers like this: