[DllImport("msi.dll", CharSet=CharSet.Auto)]
static extern uint MsiProvideAssembly(string assembly, string context, uint mode, int info, System.Text.StringBuilder path, ref int pathSize);
Declare Function MsiProvideAssembly Lib "msi.dll" (TODO) As TODO
None.
This function is available starting with Windows Installer version 2.0.
Please add some!
// Only works if application was installed via Windows Installer
public static string EnsureAssemblyIsInstalled(string assemblyName, string installPath)
{
int buffer = 1024;
StringBuilder path = new StringBuilder(1024);
uint error = UnsafeInterop.MsiProvideAssembly(assemblyName, installPath, 0, 0, path, ref buffer);
if (error == 0)
return path.ToString(); // Already installed or successfully installed
// Failed to install
return null;
}
Do you know one? Please contribute it!