Saltar al contenido

instalador de Windows – ¿Cómo encontrar la ubicación del programa en el registro, si conozco MSI GUID?

noviembre 5, 2021
apple touch icon@2

Aquí hay un programa c # simple que usa MsiGetProductInfo, como dice William Leara, para obtener la ubicación real del instalador en caché en el disco.

class Program
{
    static void Main(string[] args)
    {
        Int32 len = 512;
        System.Text.StringBuilder builder = new System.Text.StringBuilder(len);
        MsiGetProductInfo("{89C098E5-C108-49F9-9B1D-10503C6D8A05}", "LocalPackage", builder, ref len);
        Console.WriteLine(builder.ToString());
        Console.ReadLine();
    }

    [DllImport("msi.dll", CharSet = CharSet.Unicode)]
    static extern Int32 MsiGetProductInfo(string product, string property, [Out] StringBuilder valueBuf, ref Int32 len); 
}
close