Windows 7升级到10

时间:2016-05-17 12:25:08

标签: c# installation redistributable visual-c++-2015

我有一些软件可以在加载和调用需要它的DLL之前检查是否安装了Visual C ++ 2015 x86可再发行组件。检查是通过使用以下声明

MsiQueryProductState的互操作来完成的
[DllImport("msi.dll", SetLastError = true)]
public static extern INSTALLSTATE MsiQueryProductState(string product);

,电话是

Win32API.MsiQueryProductState("{A2563E55-3BEC-3828-8D67-E5E8B9E8B675}")

曾经工作过,但在其他安装了Windows 10的机器上仍然可以安装原始的,未更新的可再发行组件。

我使用VS2015和Update 2进行C#Windows桌面开发,其中包括可再发行的更新2.

几周前,我将Windows 7升级到Windows 10,昨天发现支票从返回INSTALLSTATE_DEFAULT返回到INSTALLSTATE_UNKNOWN。我不确定这是否与此问题有关,因为我在升级后才发现它。

在谷歌搜索并找不到任何内容后,我搜索了注册表和可再发行的安装日志文件,我找到了以下密钥

{BD9CFD69-EB91-354E-9C98-D439E6091932}
{2e085fd2-a3e4-4b39-8e10-6b8d35f55244}
{B5FC62F5-A367-37A5-9FD2-A6E137C0096F}
{BE960C1C-7BAD-3DE6-8B1A-2616FE532845}

但如果我做得对,我不是最微弱的想法 - 前两个返回INSTALLSTATE_UNKNOWN,后两个返回INSTALLSTATE_DEFAULT。哪个有效,但我不知道它是否正确。我以为所有的版本和更新都会使用相同的密钥。

所以,我想问的问题是:我应该查询哪些密钥才能知道是否安装了兼容版本的Visual C ++ 2015 x86 Redistributables,无论是更新,更新还是更新2?

0 个答案:

没有答案