cancel
Showing results for 
Show  only  | Search instead for 
Did you mean: 
sspencer
Level 4

IIS Version - InstallScript Project

Hi,

I have the following code used in InstallShield 12 and it works ok:

if ( IISRTGetIISVersion( IIS_GET_VERSION_MAJOR ) < IIS_VERSION_MAJOR_MIN_SUPPORT ) then

szMsg = "IIS is not Installed or the Version is not correct, Version 4.0 is required. " + "\nThe setup will now terminate.";
MessageBox(szMsg, SEVERE);
abort;
endif;

I have converted my project from version 12 to version 2008 and now when I compile I am getting the following error messages:
- error C8025: 'IISRTGetIISVersion' : undefined identifier
- error C8025: 'IIS_GET_VERSION_MAJOR' : undefined identifier

I am using a pure InstallScript project.

Does anybody have any ideas?
Labels (1)
0 Kudos
(5) Replies
rcuadra
Level 6

I'm getting the same error. Any ideas InstallShield developers? Did you get this resolved?

sspencer wrote:
Hi,

I have the following code used in InstallShield 12 and it works ok:

if ( IISRTGetIISVersion( IIS_GET_VERSION_MAJOR ) < IIS_VERSION_MAJOR_MIN_SUPPORT ) then

szMsg = "IIS is not Installed or the Version is not correct, Version 4.0 is required. " + "\nThe setup will now terminate.";
MessageBox(szMsg, SEVERE);
abort;
endif;

I have converted my project from version 12 to version 2008 and now when I compile I am getting the following error messages:
- error C8025: 'IISRTGetIISVersion' : undefined identifier
- error C8025: 'IIS_GET_VERSION_MAJOR' : undefined identifier

I am using a pure InstallScript project.

Does anybody have any ideas?
0 Kudos
sspencer
Level 4

I'm not sure if you resolved this issue or not, but I contacted support and they suggested I copy the IISRTGetIISVersion from IS12. That code is below. For my project, I just added the registry check.

function int IISRTGetIISVersion( nFlag )
NUMBER nResult, nVersion, nType, nSize;
STRING szName, szValue;
begin

RegDBSetDefaultRoot(HKEY_LOCAL_MACHINE );

if (nFlag == IIS_GET_VERSION_MAJOR) then
szName = "MajorVersion";
elseif (nFlag == IIS_GET_VERSION_MINOR) then
szName = "MinorVersion";
else
return ISERR_INVALID_ARG;
endif;

nSize = -1;
nType = REGDB_NUMBER;
nResult = RegDBGetKeyValueEx("SYSTEM\\CurrentControlSet\\Services\\W3SVC\\Parameters", szName, nType, szValue, nSize);
if (ISERR_SUCCESS != nResult) then
return nResult;
endif;

nResult = StrToNum(nVersion, szValue);
if (ISERR_SUCCESS != nResult) then
return nResult;
endif;

RegDBSetDefaultRoot(HKEY_CURRENT_USER );

return nVersion;

end;
0 Kudos
elvinhau
Level 3

hi Sspencer, can you share how you get your project to work ?

I have added in Build>Settings:
\Script\IISRuntime\Lib\IISRT.obl

and added new row in Directory Editor > Binary Table:
\redist\compressed files\language independent\intel 32\IISRT.dll


But I still got the following error:
- error C8025: 'IIS_GET_VERSION_MAJOR' : undefined identifier
- error C8025: 'IIS_GET_VERSION_MINOR' : undefined identifier


I am using InstallScript project too (InstallShield 2008). Thanks
0 Kudos
rogcraig
Level 2

Hi,

Has anybody found a resolution to this problem?

Thanks,
Roger
0 Kudos
joshstechnij
Level 10 Flexeran
Level 10 Flexeran

The IISRTGetIISVersion function was an undocumented function that was not intended for general use. The functionality it provided was moved to an internal function that automatically performs a version check for IIS.

You can use the InstallScript registry functions to query the MajorVersion and MinorVersion values contained in the registry key HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\W3SVC\Parameters if necessary.
0 Kudos