找不到Microsoft Visual C++;2015年可再发行的编程C#

找不到Microsoft Visual C++;2015年可再发行的编程C#,c#,windows,packages,C#,Windows,Packages,嗨,我在电脑上运行了以下代码: static void Main(string[] args) { StringBuilder sbProductCode = new StringBuilder(39); int iIdx = 0; while ( 0 == MsiEnumProducts(iIdx++, sbProductCode)) { Int32 productNa

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

   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运行时,需要查找两个产品:<代码>微软Visual C++ 2015 X64最小运行时和<代码>微软Visual C++ 2015 X64附加运行时< /C> >谢谢你,我如何知道哪一个再分配表对应哪些产品?我尝试过到处搜索。您可以通过反复试验来确定它们(在干净的系统上安装可再发行的软件包,运行该工具,查看出现的产品),也可以检查未打包的可再发行MSI/MSM文件内容(下载或在Visual Studio安装目录中找到)使用Windows SDK中的Windows Installer工具,并从中获取产品名称。