Good day dear members,
I have a good question:
How can I make sure that the window application that I developed in visual studio will be functioning well in different operating systems (i.e. windows 7, vista and XP).
Just a day ago, I developed a program in vista (32 bit operating system), and when I install it in windows 7 (64 bit operating system) and run it, I got the following error:
microsoft.ace.oledb.12.0 provider is not registered
How to avoid such issues in the future?? Is it possible for a window application developed in specific operating system to be usable in all other window operating systems?
Thanks in advance,
Ali
Loading

Zoran HorvatPosted Aug 3, 2011, 4:26 AM
To do that, you can search for Access-related keys in the Registry from your application's setup. If appropriate version is missing, then your setup should start its installation before procedding, and test the exit code of the Access setup process.
Zoran
Sam HobbsPosted Aug 3, 2011, 3:06 PM
To dertermine availability of software, I suggest using documented solutions. I assume that Microsoft has documented a way to determine if OLEDB for Access is available, but since the problem is so well known it seems it is not as important as you thought. More specifically, don't access the registry directly when there is a documented solution.
Zoran HorvatPosted Aug 3, 2011, 5:26 AM
Otherwise, application setup must always check whether all required libraries are in place. Some libraries are part of the setup, some are installed by other applications, like MS Office. Setup must either contain installation packages for required components or fail and point the user to the place from which he can install required component manually.
Typical situation is to test whether .NET Framework is present. You do that by coding so-called bootstrap setup in C++, so that it doesn't require .NET Framework. Then you test the Registry to see what versions of .NET Framework are available. If the one is missing, bootstrap setup can start its setup and test the return code. When child setup process exists with exit code indicating success, your setup continues and installs the application.
Zoran
Ali AlfarajPosted Aug 3, 2011, 5:17 AM
So the fact that the two operating systems are different in term that one is 32 bit and the other is 64 bit. has nothing to do with this prolbem??
Also, I beleive the OLEDB provider for access is installed on the target machine.