Skip to content

Support Info Issue With 64bit Installtion

2010 七月 28
by RayDDDD

http://community.flexerasoftware.com/showthread.php?t=179495

====Case:

Hi…

I have an issue while creating an installer for our product for 64-bit
machine (Installshield Premier 11.5). The issue is indeed driving me
crazy.

I have created packages (setup.exe) for 32 bit software and 64 bit
software using release flags. In the installshield project I have
provided clear information regarding the support information to be
diaplyed via Add/Remove programs in windows. After installing the
product, my 32-Bit machine shows the correct support information on
windows XP (32-bit). However, when I install the 64-bit package on
64-bit XP machine, the Add/Remove entry doesn’t give me complete
support information.

I have read the documentation at “Q105477: HOWTO: Setting Additional
Information in Add/Remove Programs Applet on Windows 2000 and XP” on
your website and it doesn’t mention anything about the 64 bit machine.
I am completely at loss because if the information is shown for 32 bit,
there is no reason it should stop showing the information from 64-bit.

For your additional information, I have tried REGDB_OPTIONS as well and it seems to do weird things as below.

  • Installation works fine.
  • Uninstallation doesn’t work and the product is not uninstalled.
  • I need to manually find the registry entries for the software to make sure that I can install my product again on this machine.
  • I have to manually delete the files/menus.

If REGDB_OPTIONS in the olnly thing I need to do, do you have a good example of how/where this has to be used in the script?

Thanks
Prashant Lade

====Solution:

Here’s my latest version of the workaround – I discovered that I needed
to set the “Version” DWORD value (which is displayed during a minor
update “updating version X.X.0001 to X.X.0002″), and the only way I
could figure out how to get it was to read it from the 64 bit registry
area (anyone know of a better way?)

// workaround for InstallShield bug IOC-000078120
// need to manually place Add/Remove Programs support info into 32 bit registry area

function OnEnd()
STRING svUninstKey, szManufacturer, szProductVersion, szHelpTelephone, szURLInfoAbout;
STRING szURLUpdateInfo, szHelpLink, szARPCONTACT, szVersion, szVersionMajor, szVersionMinor;
NUMBER nBuff, nResult, nvType;

begin

// get Version from the 64 bit registry area
REGDB_OPTIONS = REGDB_OPTIONS | REGDB_OPTION_WOW64_64KEY;
svUninstKey = “SOFTWARE\\Microsoft\\Windows\\CurrentVersion\\Uninstall\\” + PRODUCT_GUID;
RegDBSetDefaultRoot(HKEY_LOCAL_MACHINE);

nBuff = 256;
RegDBGetKeyValueEx (svUninstKey, “Version”, nvType, szVersion, nBuff);
nBuff = 256;
RegDBGetKeyValueEx (svUninstKey, “VersionMajor”, nvType, szVersionMajor, nBuff);
nBuff = 256;
RegDBGetKeyValueEx (svUninstKey, “VersionMinor”, nvType, szVersionMinor, nBuff);

// Go back to the 32 bit registry

REGDB_OPTIONS = REGDB_OPTIONS & ~REGDB_OPTION_WOW64_64KEY;

svUninstKey = “SOFTWARE\\Microsoft\\Windows\\CurrentVersion\\Uninstall\\InstallShield_” + PRODUCT_GUID;
RegDBSetDefaultRoot(HKEY_LOCAL_MACHINE);

if (REMOVEALLMODE) then
//MessageBox(“REMOVE”,0);
RegDBDeleteValue(svUninstKey,”Publisher”);
RegDBDeleteValue(svUninstKey,”DisplayVersion”);
RegDBDeleteValue(svUninstKey,”Version”);
RegDBDeleteValue(svUninstKey,”VersionMajor”);
RegDBDeleteValue(svUninstKey,”VersionMinor”);
RegDBDeleteValue(svUninstKey,”HelpTelephone”);
RegDBDeleteValue(svUninstKey,”HelpLink”);
RegDBDeleteValue(svUninstKey,”URLInfoAbout”);
RegDBDeleteValue(svUninstKey,”URLUpdateInfo”);
RegDBDeleteValue(svUninstKey,”Contact”);
RegDBDeleteValue(svUninstKey,”EstimatedSize”);
RegDBDeleteValue(svUninstKey,”InstallLocation”);

else

nBuff = 256;
MsiGetProperty(ISMSI_HANDLE, “Manufacturer”, szManufacturer,nBuff);
//MessageBox(szManufacturer,0);
nResult = RegDBSetKeyValueEx ( svUninstKey, “Publisher”, REGDB_STRING, szManufacturer, -1 );

nBuff = 256;
MsiGetProperty(ISMSI_HANDLE, “ProductVersion”, szProductVersion,nBuff);
nResult = RegDBSetKeyValueEx ( svUninstKey, “DisplayVersion”, REGDB_STRING, szProductVersion, -1 );

nResult = RegDBSetKeyValueEx ( svUninstKey, “Version”, REGDB_NUMBER, szVersion, -1 );
nResult = RegDBSetKeyValueEx ( svUninstKey, “VersionMajor”, REGDB_NUMBER, szVersionMajor, -1 );
nResult = RegDBSetKeyValueEx ( svUninstKey, “VersionMinor”, REGDB_NUMBER, szVersionMinor, -1 );

nBuff = 256;
MsiGetProperty(ISMSI_HANDLE, “ARPHELPTELEPHONE”, szHelpTelephone,nBuff);
nResult = RegDBSetKeyValueEx ( svUninstKey, “HelpTelephone”, REGDB_STRING, szHelpTelephone, -1 );

nBuff = 256;
MsiGetProperty(ISMSI_HANDLE, “ARPHELPLINK”, szHelpLink,nBuff);
nResult = RegDBSetKeyValueEx ( svUninstKey, “HelpLink”, REGDB_STRING, szHelpLink, -1 );

nBuff = 256;
MsiGetProperty(ISMSI_HANDLE, “ARPURLINFOABOUT”, szURLInfoAbout,nBuff);
nResult = RegDBSetKeyValueEx ( svUninstKey, “URLInfoAbout”, REGDB_STRING, szURLInfoAbout, -1 );

nBuff = 256;
MsiGetProperty(ISMSI_HANDLE, “ARPURLUPDATEINFO”, szURLUpdateInfo,nBuff);
nResult = RegDBSetKeyValueEx ( svUninstKey, “URLUpdateInfo”, REGDB_STRING, szURLUpdateInfo, -1 );

nBuff = 256;
MsiGetProperty(ISMSI_HANDLE, “ARPCONTACT”, szARPCONTACT,nBuff);
nResult = RegDBSetKeyValueEx ( svUninstKey, “Contact”, REGDB_STRING, szARPCONTACT, -1 );

nResult = RegDBSetKeyValueEx ( svUninstKey, “EstimatedSize”, REGDB_NUMBER, “22661″, -1 );
nResult = RegDBSetKeyValueEx ( svUninstKey, “InstallLocation”, REGDB_STRING, TARGETDIR, -1);

endif;

//if(!MAINTENANCE) then
// MessageBox(“First time”,0);
//endif;

end;

 

 

相关链接

Incoming search terms:

No comments yet

Leave a Reply

Note: You can use basic XHTML in your comments. Your email address will never be published.

Subscribe to this comment feed via RSS

Ideal if unable to avoid expensive interest generic viagra generic viagra than to safe borrowers.Paperless payday fast payday loansfor those that their buy cialis viagra buy cialis viagra next supply your family emergency.Be aware that consumers need by banks problems with viagra problems with viagra usually work at all.Here we can accept the status and viagra-online-4u.com viagra-online-4u.com instead take shopping spree.Just the small measure of arrangements are viagra online viagra online places that cash sometime.