检测是不是安装了 Visual C++ Redistributable for Visual Studio 2013

Posted

技术标签:

【中文标题】检测是不是安装了 Visual C++ Redistributable for Visual Studio 2013【英文标题】:Detect if Visual C++ Redistributable for Visual Studio 2013 is installed检测是否安装了 Visual C++ Redistributable for Visual Studio 2013 【发布时间】:2015-12-09 11:21:04 【问题描述】:

如何检测是否安装了 Visual C++ Redistributable for Visual Studio 2013?

我正在使用 Nullsoft NSIS 安装程序系统,但我只需要 Windows 注册表项

我在 Google 上搜索过,并查看了其他 *** 问题。特别是,Detect if Visual C++ Redistributable for Visual Studio 2012 is installed 提供了要检查的确切注册表项,但对于 VS 2012 而言。

【问题讨论】:

你不能启动一个静默安装(如果已经安装它什么都不做)?无论哪种方式,您都需要发送安装程序... 我只需要 windows 注册表项来检查 Visual C++ 版本 我发现始终安装与检查 VC Redist 安装程序的安装相比更容易。如果已经安装,该过程通常非常快。 @crashmstr 完全是... OP,你能解释一下为什么你想知道它是否已安装吗? 该dll不能包含在安装程序中以满足业务需求。 ;( 【参考方案1】:

我使用 NSIS 系统的解决方案:

ReadRegDword $R1 HKLM "SOFTWARE\Wow6432Node\Microsoft\VisualStudio\12.0\VC\Runtimes\x64" "Installed"
ReadRegDword $R2 HKLM "SOFTWARE\Wow6432Node\Microsoft\VisualStudio\12.0\VC\Runtimes\x86" "Installed"
$If $R1 != "1"
    $AndIf $R2 != "1"
        !insertmacro Log "Error: VisualStudio DLLs to the standard package (C++) 2013 is required!!"
        !insertmacro Log "Setup was not completed successfully."
        SetDetailsView show
        Abort 
    $Else
    !insertmacro Log "VisualStudio DLLs to the standard package (C++) 2013 is installed."

$EndIf

【讨论】:

最好检查'SOFTWARE\Microsoft\VisualStudio\12.0\VC\Runtimes\x86' Ivan Rodriguez 假设它在 64 位 Windows 上运行,这使得它在所有 x86 Windows 安装上都失败,@Mr.Angel 在大多数 x64 Windows 安装上的答案都是错误的,因为它们大多数时候没有x86 VC redist 已安装。因此,您必须根据您编写 NSIS 脚本所使用的软件检查正确的架构。 我在 x86 和 x64 上检查了我的解决方案。无需检查架构即可完美运行。 就我而言,我必须根据操作系统位数安装 VC redist,因此我必须从仅存在于 x64 系统上的注册表路径中删除“Wow6432Node”部分。不过,感谢您的代码;)

以上是关于检测是不是安装了 Visual C++ Redistributable for Visual Studio 2013的主要内容,如果未能解决你的问题,请参考以下文章

装Kingbase ES V7时为啥依赖检测时,总是提示我说Microsoft Visual C++ 2008未通过检测???

是否有任何工具可以检测 Visual C++ 6.0 上的缓冲区溢出? [关闭]

在 Visual C++ (Windows) 中检测内存泄漏

Visual C++ - 内存泄漏检测

Visual C++ - 内存泄漏检测

Visual Leak Detector 2 2 3 Visual C++内存检测工具