Fixing 32 Bit DLL Dependent .NET Apps for 64 Bit OSes
February 23, 2010
The Dawat-e Islami IT team has done something incredible in putting together their Fatawa Rizwiyya Sharif application. Unfortunately, this team seems to be an all Microsoft shop. We’ll make dua for them on that.
Meanwhile, there seems to have been a slight oversight in releasing the software. Insha’ Allah we can get them to devote a few minutes of tawajjuh to this and rebuild the executable they distribute.
The problem is this: the app depends on [something related to] the Jet DB Engine, which is not only deprecated, but does not run natively under 64 bit versions of Windows. This does not mean that the software cannot run under 64-bit OSes, but rather the OS needs to know to run it app as a 32-bit app. Unfortunately Visual Studio compiles apps by default as platform agnostic, and 64-bit users receive an error. IIRC the error is something like “Microsoft.Jet.OleDb.4.0 provider is not registered on the local machine.”
While we wait for a fixed version, there is a fix you can perform locally. To change the 32-bit execution flag, just run:
CoreFlags.exe FatawaeRazaviya.exe /32BIT+
(Determining the full path for each of these executables is left as an exercise for the reader.)
CoreFlags is a part of the .NET SDK. If this is not already installed, download the latest version of the installer. (You can use the “for Windows 7” version on Vista – and it will probably correspond to the version of .NET you have installed.) In the installer, you only need to check: Developer Tools > Windows Development Tools > .NET Development Tools.
After changing this one flag, the app will work beautifully, assuming you have taken the necessary language setup steps.
Allah reward Ala Hazrat رضی اللہ عنہ and Hazrat Maulana Ilyas Qadiri and all of those working for Dawat-e Islami, and especially the programmers and ulama who have taken part in this effort a thousand times for every click of every user, and 100,000 times for every time someone acts on a point learned from a work prepared or question answered using this software.
I’m not really a Windows or .NET person, so if I’ve made any mistake in my explanation, forgive me and correct me.