Salut, je courais le code suivant sur mon pc:Vous ne trouvez pas Microsoft Visual C++ 2015 redistribuable C# Programmatically
static void Main(string[] args)
{
StringBuilder sbProductCode = new StringBuilder(39);
int iIdx = 0;
while (
0 == MsiEnumProducts(iIdx++, sbProductCode))
{
Int32 productNameLen = 512;
StringBuilder sbProductName = new StringBuilder(productNameLen);
MsiGetProductInfo(sbProductCode.ToString(),
"ProductName", sbProductName, ref productNameLen);
if (sbProductName.ToString().Contains("Microsoft Visual C++ 2015 Redistributable"))
{
Int32 installDirLen = 1024;
StringBuilder sbInstallDir = new StringBuilder(installDirLen);
MsiGetProductInfo(sbProductCode.ToString(),
"InstallLocation", sbInstallDir, ref installDirLen);
Console.WriteLine("ProductName {0}: {1}",
sbProductName, sbInstallDir);
Console.ReadLine();
}
}
}
Les extrémités de la boucle et rien ne se trouve. Cependant en regardant Programmes et fonctionnalités dans le Panneau de configuration, je peux voir clairement qu'il est installé, et le nom correspond exactement dans la chaîne.
Merci, comment puis-je savoir quels redistribuables correspondent à quels produits? J'ai essayé de chercher partout. – Phil15
Vous pouvez les déterminer par essais et erreurs (installer un package redistribuable sur un système propre, exécuter l'outil, voir quels produits apparaissent) ou inspecter le contenu du fichier MSI/MSM redistribuable décompressé (téléchargé ou trouvé dans le répertoire d'installation de Visual Studio)) avec les outils Windows Installer de Windows SDK et obtenir les noms de produits à partir de là. – cynic