I am trying to figure out the most efficient way to determine if Windows Installer 4.5 is installed on a machine.
I have a 2.0 application (cannot convert at this time to 3.5) and we are upgrading from MSDE to SQL 2008 Express. One of the requirements of 2008 Express is that Windows Installer 4.5 is installed on the machine. This application is deployed globally to machines both on and off of an internal network.
I would prefer to run a batch file or C# code to determine the installer version.
Please let me know your recommended methods and provide some code (or links to code).
Thanks!
You can read the file version of the msi.dll
library in the system directory:
using System.Diagnostics;
using System.IO;
public bool IsWindowsInstaller45Installed()
{
FileVersionInfo info;
string fileName = Path.Combine(Environment.SystemDirectory, "msi.dll");
try {
info = FileVersionInfo.GetVersionInfo(fileName);
} catch (FileNotFoundException) {
return false;
}
return (info.FileMajorPart > 4
|| info.FileMajorPart == 4 && info.FileMinorPart >= 5);
}
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With