繁体   English   中英

找不到以编程方式C#的Microsoft Visual C ++ 2015可再发行组件

[英]Cannot find Microsoft Visual C++ 2015 Redistributable Programmatically C#

嗨,我在我的电脑上运行以下代码:

   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();
            }
        }
    }

循环结束,未找到任何内容。 但是,在“控制面板”中查看“程序和功能”,我可以清楚地看到它已安装,并且名称与字符串完全匹配。

在此处输入图片说明

这是因为MSI“产品”与面向用户的“程序和功能”列表中显示的条目不1:1对应。 对于Windows 7上安装的VC 2015 x64运行时,您需要查找两种产品: Microsoft Visual C++ 2015 x64 Minimum RuntimeMicrosoft Visual C++ 2015 x64 Additional Runtime

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM