dwhaley66
Posts: 10
Joined: Sat Dec 08, 2007 3:32 pm

MS Jet

Has anyone figured out a way to reliably include Microsft Jet in an install for all Windows versions?

Thanks
Cosmin
Posts: 5797
Joined: Tue Jul 10, 2007 6:39 pm
Contact: Website

Hi,

This can be done by using the "Install Conditions" tab in the "New Prerequisite" dialog.

Here you can use the "Launch Conditions" section to set custom launch conditions depending on the OS or you can use the "Searches" section to specify a custom detection criteria (for the Windows version you can use a registry entry or a custom EXE which returns it).

You can read more about this here:
http://www.advancedinstaller.com/user-g ... tions.html

You can include all MS Jet versions in your installation package and the installation process will use the Install Conditions to know which version will be installed.

Regards,
Cosmin
Cosmin Pirvu - Advanced Installer Team
Follow us: Twitter - Facebook - YouTube
Quadiago
Posts: 71
Joined: Thu May 31, 2007 9:07 am

This actually reminded me about a little problem with this. There are three version of Jet that I need to ship with a package. The first targets 9x-NT, which is fine. The second targets Win2k, but you can only specify from Windows 2000. This overlaps with the condition for XP, which is the target for the third package. So on Win2k both will attempt to install...
dwhaley66
Posts: 10
Joined: Sat Dec 08, 2007 3:32 pm

That is the problem. Since you can only specify "from", it can't be done through prerequisites. There are 5 OS Specific versions of Jet. On XP, it tries to install 3 of them.

This is a real problem. I'm surprised it has not come up more.

If there is a way to reliably determine the version through Reg Keys, possibly could be done that way?
Cosmin
Posts: 5797
Joined: Tue Jul 10, 2007 6:39 pm
Contact: Website

Hi,

Like I said in my previous post, you can also use a custom detection criteria set in the "Searches" section. In your case you can create an EXE which uses code like this:

Code: Select all

OSVERSIONINFO vi;
::ZeroMemory(&vi, sizeof(OSVERSIONINFO));
vi.dwOSVersionInfoSize = sizeof(OSVERSIONINFO);
::GetVersionEx(&vi);
You can use vi to get the Windows version or build number and use them for the detection.

You can read more about the OSVERSIONINFO structure here:
http://msdn2.microsoft.com/en-us/library/ms724834.aspx

Regards,
Cosmin
Cosmin Pirvu - Advanced Installer Team
Follow us: Twitter - Facebook - YouTube
Quadiago
Posts: 71
Joined: Thu May 31, 2007 9:07 am

Yeah I believe it should be possible. Just a case of finding the correct keys to use.

But while the bootstrapper is already doing it, you guys (Moderators) must know?

Sorry - was busy typing while Cosmin also replied
dwhaley66
Posts: 10
Joined: Sat Dec 08, 2007 3:32 pm

I could easily do this checking the Reg Key, problem is the searches are exclusions not inclusions.

Trying to check if a reg key value is 4.1 or 4.90 while also checking minimum dll versions doesn't seem possible.
Quadiago
Posts: 71
Joined: Thu May 31, 2007 9:07 am

Hmm.

I understand what you mean.

Cosmin: Would you please just increase the flexibility of the existing feature? It should be possible to specify any combination of target Windows versions and allowing this should be pretty simple given what you've already got.

Adding a custom executable will work, but is just such a major workaround considering the real problem...
Cosmin
Posts: 5797
Joined: Tue Jul 10, 2007 6:39 pm
Contact: Website

Hi,
Cosmin: Would you please just increase the flexibility of the existing feature? It should be possible to specify any combination of target Windows versions and allowing this should be pretty simple given what you've already got.
I have added this feature on our TODO list and it will be available in a future version of Advanced Installer.
Thank you for your suggestion.

Regards,
Cosmin
Cosmin Pirvu - Advanced Installer Team
Follow us: Twitter - Facebook - YouTube

Return to “Common Problems”