den_by
Pilgrim

Application upgrade from 32 bit to 64 bit

Is it possible to detect a 32 bit version of the same application when you use 64 bit installer with InstallAnlywhere?

We used to supply 32-bit only installer an now we want to use 64 bit installer and be able to upgrade previous versions using 64 bit VM and install it as 64 bit application.

At this point IA can't detect 32 bit version installed on the endpoint, where is a code snippet :

Is there a way to tell 64 bit installer to look in 32 bit location ?
[CODE]
private void findIAProduct(IAProxy proxy, ProductRegistryService service) {
rootIA = findProduct(service, IA_PRODUCT_UUID);
if(null != rootIA){
installLocation = rootIA.getLocation();
log.logEvent("Install location (IA): " + installLocation);
File rootDir = new File(installLocation);
if(!rootDir.exists()) {
log.logEvent(Log.WARNING, "IA registry points to removed product");
cleanIARegistry(proxy);
rootIA = null;
} else {
Feature[] features = rootIA.getFeatures();

for(Feature feature : features){
if(null == adminIA && feature.getKeyName().equalsIgnoreCase(IA_ADMIN_NAME)){
log.logEvent("Component: " + IA_ADMIN_NAME + " found in IA registry");
adminIA = feature;
}
}
}
}
}



private Product findProduct(ProductRegistryService service, String prodUUID) {
log.logEvent("begin");
Product retVal = null;

SoftwareObjectSearchCriteria crit = new SoftwareObjectSearchCriteria();
crit.setUniqueID(prodUUID);
Product[] products = null;

try{
products = service.getProducts(crit);

}
catch(Exception e){
log.logEvent("The IA registry does not exist");
products = null;
}

if(null != products){
if(products.length > 0){
log.logEvent("Product with uuid: " + prodUUID + " found in IA registry");
retVal = products[0];
}
else{
log.logEvent("Product with uid: " + prodUUID + " not found in IA registry");
}
}

log.logEvent("end");
return retVal;
}
[/CODE]
Labels (1)
0 Kudos
1 Reply
yashendra
Flexera beginner

Hi,

Can you please let me know how did you resolve this problem?

Thanks
0 Kudos