Returns the full path to a Windows Installer component containing an assembly. The function prompts for a source and performs any necessary installation. MsiProvideAssembly also increments the usage count for the feature.
[DllImport("msi.dll")]
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!