This website uses cookies. By clicking Accept, you consent to the use of cookies. Click Here to learn more about how we use cookies.
Turn on suggestions
Auto-suggest helps you quickly narrow down your search results by suggesting possible matches as you type.
- Revenera Community
- :
- InstallShield
- :
- InstallShield Forum
- :
- Windows Installer pre-req
Subscribe
- Mark Topic as New
- Mark Topic as Read
- Float this Topic for Current User
- Subscribe
- Mute
- Printer Friendly Page
- Mark as New
- Subscribe
- Mute
- Permalink
- Report Inappropriate Content
‎Aug 14, 2008
09:26 AM
Bug in .NET 2.0 SP1 prereq
There's a bug in the PRQ file for .NET 2.0 SP1 in IS2009, and I figure I would give everyone the heads up in here. Open any of the .NET 2.0 SP1 PRQ files in the prereq editor and switch to the 'Conditions' tab. Highlight the top entry (the one that looks for a specific value in the registry) and click Modify.
The bug is that it's looking at the value defined in SP in HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\NET Framework Setup\NDP\v2.0.50727, but it's doing a 'Not Equal To' comparison! (The value is 1 when 2.0 SP1 is installed, and 2 when .NET 2.0 SP2 is installed).
When you upgrade .NET 3.5 to .NET 3.5 SP1, it upgrades .NET 2.0 to SP2. Now, when your users (who have .NET 3.5 SP1 installed) go to install your installation package (that requires .NET 2.0 SP1), it will tell them they need to install .NET 2.0 SP1 first (even though they have .NET 2.0 SP2)! The prereq needs changed to do a 'Greater Than' comparison rather than a 'Not Equal To' comparison.
Hope this helps someone!
The bug is that it's looking at the value defined in SP in HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\NET Framework Setup\NDP\v2.0.50727, but it's doing a 'Not Equal To' comparison! (The value is 1 when 2.0 SP1 is installed, and 2 when .NET 2.0 SP2 is installed).
When you upgrade .NET 3.5 to .NET 3.5 SP1, it upgrades .NET 2.0 to SP2. Now, when your users (who have .NET 3.5 SP1 installed) go to install your installation package (that requires .NET 2.0 SP1), it will tell them they need to install .NET 2.0 SP1 first (even though they have .NET 2.0 SP2)! The prereq needs changed to do a 'Greater Than' comparison rather than a 'Not Equal To' comparison.
Hope this helps someone!
(17) Replies
- Mark as New
- Subscribe
- Mute
- Permalink
- Report Inappropriate Content
‎Aug 14, 2008
03:10 PM
Thanks for the suggestion!
It has been sumbitted in IOC-000074405.
It has been sumbitted in IOC-000074405.
- Mark as New
- Subscribe
- Mute
- Permalink
- Report Inappropriate Content
‎Aug 21, 2008
01:52 PM
I opened the prerequisite editor - and looking at the condition - it says the module will be executied if 'is equal to' - ok, as noted in this post this is not right.
But, I think osumatt has it backwards??? Shouldn't it be 'is less than'? Not greater than as we want to install 2.0 SP1 only if entry in this field is less than 1.
So - was I correct:
Will changing the prerequisite to 'is less than' and clicking Save - fix this problem???
This is a rather important problem and we really need to know if this would fix it. It has been 7 days since this was posted - would my fix work or do we have to wait for some patch to fix this?
Thanks,
Todd
But, I think osumatt has it backwards??? Shouldn't it be 'is less than'? Not greater than as we want to install 2.0 SP1 only if entry in this field is less than 1.
So - was I correct:
Will changing the prerequisite to 'is less than' and clicking Save - fix this problem???
This is a rather important problem and we really need to know if this would fix it. It has been 7 days since this was posted - would my fix work or do we have to wait for some patch to fix this?
Thanks,
Todd
- Mark as New
- Subscribe
- Mute
- Permalink
- Report Inappropriate Content
‎Aug 21, 2008
02:19 PM
You are correct. The condition should be "less than". This is the change that we will be implementing to fix the submitted issue # IOC-000074405.
(If my reply answers a question you have raised, please click "ACCEPT AS SOLUTION".)
- Mark as New
- Subscribe
- Mute
- Permalink
- Report Inappropriate Content
‎Aug 22, 2008
04:06 PM
SherylSikora wrote:
You are correct. The condition should be "less than". This is the change that we will be implementing to fix the submitted issue # IOC-000074405.
Thanks for the confirmation Sheryl.
We had implemented the change and I just wanted to be sure...
Thanks.
- Mark as New
- Subscribe
- Mute
- Permalink
- Report Inappropriate Content
‎Aug 27, 2008
12:54 PM
Note: I believe I've found another bug in the prerequisite (and dotnetfx.exe, I guess). It has no condition that Windows Installer must be 3.1 or greater (but the install fails when bundled with my installer or ran separately). By adding a [SystemFolder]msi.dll > 3.1.0.0 condition to the prq and bundling the windows installer 3.1 into my setup.exe, the install will skip the prerequisite, upgrade windows installer, reboot the machine, and then allow me to run the installer again (and successfully install .Net2.0 SP1). Unfortunately this still doesn't work for me as I would have needed it to auto-resume, but I figured I'd let this thread know about it.
edit: disregard the above, what really needed to be done is just have this checkbox checked:
"Application To Run" -> "Requires WIndows Installer engine and/or .NET Framework to be installed first." which is unchecked by default.
edit: disregard the above, what really needed to be done is just have this checkbox checked:
"Application To Run" -> "Requires WIndows Installer engine and/or .NET Framework to be installed first." which is unchecked by default.
- Mark as New
- Subscribe
- Mute
- Permalink
- Report Inappropriate Content
‎Aug 27, 2008
02:20 PM
Assuming you have IS2009, the Windows Installer is part of the main Installshield program - it does not need to be added - no pre-requisite is required (at least for InstallScript MSI projects).
Open the Media - Releases folder and click on your build name
Select the setup.exe tab
Under MSI Engine Location - pick Extract from Setup.exe
Under MSI Engine Version - pick Version 3.0 (requires Windows 2000 SP3 or greater)
NEXT is the important option - which is to force your installation to reboot to install Windows Installer 3.0 PRIOR to continuing the install:
Under Delay MSI ENgine ReBoot - Select No
The property info states:
The Delay MSI Engine Reboot setting lets you specify whether you want to postpone any reboot associated with installing or updating the Windows Installer engine on the target system until after your installation is completed.
Select Yes to postpone the reboot, if one is necessary. (THIS WILL cause continuing to fail which is why you made the prerequisite...)
Select No to allow the system to reboot, if necessary, immediately after the Windows Installer engine has been installed or updated and before performing your installation.
Tested - This works - my QA department got a little upset as all of a sudden there were reboots in the middle of our installs - but we now install SQL Server Express and it requires Windows Installer 3.0 - so until I changed the above option - the install would always fail on the SQL Server install part...
Open the Media - Releases folder and click on your build name
Select the setup.exe tab
Under MSI Engine Location - pick Extract from Setup.exe
Under MSI Engine Version - pick Version 3.0 (requires Windows 2000 SP3 or greater)
NEXT is the important option - which is to force your installation to reboot to install Windows Installer 3.0 PRIOR to continuing the install:
Under Delay MSI ENgine ReBoot - Select No
The property info states:
The Delay MSI Engine Reboot setting lets you specify whether you want to postpone any reboot associated with installing or updating the Windows Installer engine on the target system until after your installation is completed.
Select Yes to postpone the reboot, if one is necessary. (THIS WILL cause continuing to fail which is why you made the prerequisite...)
Select No to allow the system to reboot, if necessary, immediately after the Windows Installer engine has been installed or updated and before performing your installation.
Tested - This works - my QA department got a little upset as all of a sudden there were reboots in the middle of our installs - but we now install SQL Server Express and it requires Windows Installer 3.0 - so until I changed the above option - the install would always fail on the SQL Server install part...
- Mark as New
- Subscribe
- Mute
- Permalink
- Report Inappropriate Content
‎Oct 07, 2008
09:12 AM
This doesn't work in my setup. I see my splashscreen, followed by the PreRequisites window showing .NET 2.0 SP1. Click install and then I get a failure message box. It is only after this that I see the Windows Installer being unpacked and installed. This is followed by .NET 2.0 being installed followed by a reboot. After reboot my installation continues. .Net 2.0 SP1 never gets installed.
Why is SP1 not substituted for the original version? Why the need for the PreRequisites?
Mark
Why is SP1 not substituted for the original version? Why the need for the PreRequisites?
Mark
- Mark as New
- Subscribe
- Mute
- Permalink
- Report Inappropriate Content
‎Feb 15, 2009
05:21 PM
Does anyone know if this has been fixed yet?
Thanks
You are correct. The condition should be "less than". This is the change that we will be implementing to fix the submitted issue # IOC-000074405.
__________________
Sheryl Sikora - Senior Software Build Engineer - Acresso Software: InstallShield Team
Thanks
You are correct. The condition should be "less than". This is the change that we will be implementing to fix the submitted issue # IOC-000074405.
__________________
Sheryl Sikora - Senior Software Build Engineer - Acresso Software: InstallShield Team
- Mark as New
- Subscribe
- Mute
- Permalink
- Report Inappropriate Content
‎Apr 08, 2009
03:02 PM
This issue has been fixed and will be included in our next release.
I have attached the fixed "Microsoft .NET Framework 2.0 SP1.prq" file to this post. Just drop it into your InstallShield Setup Prerequisites folder (C:\Program Files\InstallShield\2009\SetupPrerequisites).
I have attached the fixed "Microsoft .NET Framework 2.0 SP1.prq" file to this post. Just drop it into your InstallShield Setup Prerequisites folder (C:\Program Files\InstallShield\2009\SetupPrerequisites).
(If my reply answers a question you have raised, please click "ACCEPT AS SOLUTION".)
- Mark as New
- Subscribe
- Mute
- Permalink
- Report Inappropriate Content
‎May 08, 2009
12:03 PM
I still doesn't seem to recognize that I have .net 2.0 sp1 installed.
- Mark as New
- Subscribe
- Mute
- Permalink
- Report Inappropriate Content
‎May 18, 2009
05:15 PM
paul2268,
I have posted a fix for you that applies only to InstallShield 2009 Express here:
http://community.acresso.com/showthread.php?p=438994#post438994
I have posted a fix for you that applies only to InstallShield 2009 Express here:
http://community.acresso.com/showthread.php?p=438994#post438994
(If my reply answers a question you have raised, please click "ACCEPT AS SOLUTION".)
- Mark as New
- Subscribe
- Mute
- Permalink
- Report Inappropriate Content
‎Jun 10, 2009
07:01 PM
Hi,
It seems that I ran into another flaw of the prerequisite.
The primary condition of the prereq is checking for the reg key
and it's SP value, but the selected condition type is 'A registry entry has a specified valeu', which means the checking focus on the value of SP, disregarding the operation selection which is not focus here.
I tried my installation with a basic W2K, which has no .NET installed at all, and the .NET 2.0 is not listed as prerequisite at install. Does that mean it passed the SP value checking? How does it handle if the quoted registry key doesn't exist at all, I mean to add another condition item to check for the existence of the reg key? Maybe there are other possible .NET 2.0 versions instead of v2.0.50727? How to check if there is any version of .NET 2.0 installed already?
Thanks,
PB
It seems that I ran into another flaw of the prerequisite.
The primary condition of the prereq is checking for the reg key
HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\NET Framework Setup\NDP\v2.0.50727
and it's SP value, but the selected condition type is 'A registry entry has a specified valeu', which means the checking focus on the value of SP, disregarding the operation selection which is not focus here.
I tried my installation with a basic W2K, which has no .NET installed at all, and the .NET 2.0 is not listed as prerequisite at install. Does that mean it passed the SP value checking? How does it handle if the quoted registry key doesn't exist at all, I mean to add another condition item to check for the existence of the reg key? Maybe there are other possible .NET 2.0 versions instead of v2.0.50727? How to check if there is any version of .NET 2.0 installed already?
Thanks,
PB
- Mark as New
- Subscribe
- Mute
- Permalink
- Report Inappropriate Content
‎Jun 10, 2009
07:54 PM
Hmm, I just realized that it may be not the problem of the prerequisite, but my installer project. Now the package never check or always fails checking of .NET 2.0.
I included the .prq in my project by checking the preq item, and I did see the item is included in 'ISSetupPrerequisites' folder if I create a uncompressed image. I also tested couple of different machines without .NET2, and the package didn't list the prerequisite at all.
I have the following prerequisites in my package, with the order:
MS .NET 2.0
MDAC 2.8
MS ReportViewer2005
SQL2005Express SP2
Is it possible that .NET2 conflict with any of the other prerequisites? I kind remember that the .NET2 prerequisite once prompted (worked) at the very beginning when I started to work on the project. What did I do that faked or blocked the prerequisite?
I am using IS2008 premeir though, which I don't think matter at all.
Any ideas?
Thanks,
PB
I included the .prq in my project by checking the preq item, and I did see the item is included in 'ISSetupPrerequisites' folder if I create a uncompressed image. I also tested couple of different machines without .NET2, and the package didn't list the prerequisite at all.
I have the following prerequisites in my package, with the order:
MS .NET 2.0
MDAC 2.8
MS ReportViewer2005
SQL2005Express SP2
Is it possible that .NET2 conflict with any of the other prerequisites? I kind remember that the .NET2 prerequisite once prompted (worked) at the very beginning when I started to work on the project. What did I do that faked or blocked the prerequisite?
I am using IS2008 premeir though, which I don't think matter at all.
Any ideas?
Thanks,
PB
- Mark as New
- Subscribe
- Mute
- Permalink
- Report Inappropriate Content
‎Jun 11, 2009
08:03 AM
I don't think that the .NET Framework 2.0 SP1 prerequisite will work correctly in InstallShield 2008. I think it works only in InstallShield 2009 SP2. In InstallShield 2009 SP2, we added support to InstallShield and to the InstallShield Prerequisite Editor for a new prerequisite condition, called A registry has a specified version value. That condition is required for the .NET Framework 2.0 SP1.
- Mark as New
- Subscribe
- Mute
- Permalink
- Report Inappropriate Content
‎Jun 11, 2009
06:49 PM
Debbie,
I think you are right that the prq may not be compatible with IS2008 (but I still have impression that the prerequisite once worked when I first copied it to my IS2008).
What I finally did is to create my own prerequisite and make it point to the same included file (NetFx20SP1_x86.exe), but in the condition I choose to check the existence of .NET2 registry key (HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\NET Framework Setup\NDP\v2.0.50727), since my product needs .NET2 without specification of SP versions.
It works fine so far.
Thanks,
PB
I think you are right that the prq may not be compatible with IS2008 (but I still have impression that the prerequisite once worked when I first copied it to my IS2008).
What I finally did is to create my own prerequisite and make it point to the same included file (NetFx20SP1_x86.exe), but in the condition I choose to check the existence of .NET2 registry key (HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\NET Framework Setup\NDP\v2.0.50727), since my product needs .NET2 without specification of SP versions.
It works fine so far.
Thanks,
PB
- Mark as New
- Subscribe
- Mute
- Permalink
- Report Inappropriate Content
‎Jul 19, 2009
06:53 AM
What is the actual difference between "a registry key has a specified value" and "a registry key has a specified version value"?
I've been using the former and it seems to work fine for this .NET 2.0 SP1 condition but I haven't tested it on a machine without any form of .NET 2.0 yet.
I've been using the former and it seems to work fine for this .NET 2.0 SP1 condition but I haven't tested it on a machine without any form of .NET 2.0 yet.
- Mark as New
- Subscribe
- Mute
- Permalink
- Report Inappropriate Content
‎Jul 20, 2009
10:50 AM
The latter (version value) does comparisons as standard dotted number versions where 1.10 is greater than 1.9 and so forth.