cancel
Showing results for 
Show  only  | Search instead for 
Did you mean: 
akovtun
Level 2

iawin32.dll and iawin64_x64.dll

Hi,

Googling around, I can see it's a recurring issue for a long time, but mb somebody bumped into a feasible solution?

As I can see, when launched on Win64, IA unpacks iawin32.dll or iawin64_x64.dll into installation directory, depending on which kind of JVM (32- or 64-bit) was used to do the installation.
Thus, if for some reasons uninstaller attempts to use another kind of JVM (i.e., 32-bit for install, 64-bit for uninstall or contrariwise), it will fail with a message like "platform not supported".

The trouble is, I can't always grant that the required VM is present at the time of uninstallation... E.g., my user is quite free to do following (assuming no Java was installed before):
1. Install 32-bit Java.
2. Install my software (this would unpack iawin32.dll)
3. Uninstall 32-bit Java, install 64-bit instead.
4. Attempt to uninstall my software.
This would fail as we're missing iawin64_x64.dll...

And I must add, it's not a fantastic scenario; my QA files me bugs about this now and then, so that it's quite possible with customer's setup too 😞

I can see that the problem is ultimately solved if I have both iawin32.dll and iawin64_x64.dll copied [manually] in the install dir; however how do I achieve it programmatically?...

So the actual question runs like this: is there any feasible way to get IA copy both iawin32.dll and iawin64_x64.dll without manually adding them to my IA project? Like some secret setting in IA project, or whatever...

Thanks in advance,
-andy
PS. Oh, and I can also see that IA home additionally has yet another DLL: iawin64.dll. Anyone knows what's this guy for?
PPS. Well, there is an [ugly] workaround: configure the project to "use 64-bit only or die" or "use 32-bit only or die". Alas, that's not a solution for me for certain reasons (OK if I skip details why exactly?) 😞
Labels (1)
0 Kudos
(3) Replies
jerome_IA
Level 9

Have a look to this post at least: http://community.flexerasoftware.com/showthread.php?t=190924

At build time, get the 64-bit dll you need from: C:\Program Files\.....\InstallAnywhere \resource\nativetools\windows

In Install tab of InstallAnywhere UI, select the "uninstall" folder and put this "iawin64_x64.dll" into subfolder called "resource". Add the correct rules for this action to match your project needs.

--Jerome
0 Kudos
akovtun
Level 2

Yeah, that's exactly the thread I googled up and the solution I've taken.
Just a bit of caveat: to avoid 64-bit DLL being deployed on Win32 it makes sense to mark these files in project as targeted for 64-bit architecture only. And to avoid your installer raising "Overwrite" dialog, set the "Overwrite" flag for these files to "Skip".

Still, looks kludgy like hell..
0 Kudos
iriswangxy
Level 3

It is easy to reproduce the error.

Project--> Jave --> do not select the "Bundled Virtual Machine"

Build--> Build Targets --> Windows with VM.

build the project and install it to the windows machine, when uninstall it, will have the same error
0 Kudos