如何判断VCredist.exe是否安装了呢

xingeddx 2018-07-26 02:02:36
RT。
电脑中是否安装了哪个版本的VCRedist呢,比如2010 2012 2013 等。
使用注册表的方法需要找哪个键呢,有没有成熟的代码可以使用,感觉应该已经有人总结过,但是没有找到好用的。
...全文
858 3 打赏 收藏 转发到动态 举报
写回复
用AI写文章
3 条回复
切换为时间正序
请发表友善的回复…
发表回复
泡泡龙 2018-07-30
  • 打赏
  • 举报
回复
/*
RegistryKey vcNode = Registry.ClassesRoot.OpenSubKey(@"Installer\Dependencies\Microsoft.VS.VC_RuntimeMinimumVSU_x86,v14");
if (vcNode==null)
{
//string guid = vcNode.GetValue("").ToString();
MessageBox.Show("请安装x86版的VC++2017运行库!\r\nhttps://support.microsoft.com/zh-cn/help/2977003/the-latest-supported-visual-c-downloads\r\n");
System.Diagnostics.Process.Start("https://support.microsoft.com/zh-cn/help/2977003/the-latest-supported-visual-c-downloads");
Application.Exit();
return;
}
*/

/*
msvcp、msvcr
VS2017 msvcr140.dll
VS2015 msvcr140.dll

VS2013 msvcr120.dll
VS2012 msvcr110.dll
VS2010 msvcr100.dll
VS2008 msvcr90.dll
//vc2013
string VC_RuntimeMinimumVSU_x86v12 = "{13A4EE12-23EA-3371-91EE-EFB36DDFFF3E}";
//string VC_RuntimeAdditionalVSU_x86v12 = "{F8CFEB22-A2E7-3971-9EDA-4B11EDEFC185}";

//vc2017,14.12和14.13的GUID不一样??
string VC_RuntimeMinimumVSU_x86v14 = "{8F271F6C-6E7B-3D0A-951B-6E7B694D78BD}"; //"{{828952EB-5572-3666-8CA9-000B6CE79350}}";
//string VC_RuntimeAdditionalVSU_x86v14 = "{895D5198-C5DB-375E-86AB-133F4DAA9FE2}";//"{7FED75A1-600C-394B-8376-712E2A8861F2}";

WindowsInstaller.MsiInstallState state = WindowsInstaller.MsiInterop.MsiQueryProductState(VC_RuntimeMinimumVSU_x86v14);
if (state != WindowsInstaller.MsiInstallState.Default)
{
MessageBox.Show("请安装VC2017运行库(x86版)!\r\nhttps://www.microsoft.com/zh-cn/download/details.aspx?id=48145\r\n");
System.Diagnostics.Process.Start("https://support.microsoft.com/en-us/help/2977003/the-latest-supported-visual-c-downloads");
Application.Exit();
return;
}
*/
xingeddx 2018-07-30
  • 打赏
  • 举报
回复
引用 1 楼 liucqa 的回复:
注册表太乱,只能挨个版本测试

可否详细点
泡泡龙 2018-07-28
  • 打赏
  • 举报
回复
注册表太乱,只能挨个版本测试

110,539

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术 C#
社区管理员
  • C#
  • Web++
  • by_封爱
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

让您成为最强悍的C#开发者

试试用AI创作助手写篇文章吧