Visual c++ 检测Visual C++;已安装Visual Studio 2013的可再发行版本 如何检测VisualStudio 2013的VisualC++可重新分发是否安装?

Visual c++ 检测Visual C++;已安装Visual Studio 2013的可再发行版本 如何检测VisualStudio 2013的VisualC++可重新分发是否安装?,visual-c++,nsis,Visual C++,Nsis,我正在使用Nullsoft NSIS安装程序系统,但我只需要Windows注册表项 我在谷歌上搜索了一下,并查看了其他问题。特别是,这提供了要检查的确切注册表项,但对于VS 2012而言。我的NSIS系统解决方案: ReadRegDword $R1 HKLM "SOFTWARE\Wow6432Node\Microsoft\VisualStudio\12.0\VC\Runtimes\x64" "Installed" ReadRegDword $R2 HKLM "SOFTWARE\Wow6432No

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


我在谷歌上搜索了一下,并查看了其他问题。特别是,这提供了要检查的确切注册表项,但对于VS 2012而言。

我的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}

难道你不能启动一个静默安装(如果已经安装了,它将什么也做不了)?您需要以任何方式来安装安装程序……我只需要检查Windows Visual C++版本的Windows注册表项,就可以更容易地为VC.ReDIST安装程序安装VS检查安装。如果已经安装,该过程通常非常快。@crashmstr正好。。。OP,你能解释一下为什么你想知道它是否已经安装了吗?由于业务需要,dll不能包含在安装程序中;(最好检查'SOFTWARE\Microsoft\VisualStudio\12.0\VC\Runtimes\x86',Ivan Rodriguez假设它在64位Windows上运行,这使得它在所有x86 Windows安装上都失败,@Mr.Angel answer在大多数x64 Windows安装上都是错误的,因为它们大多数时候没有安装x86 VC redist。因此,您将ave需要根据编写NSIS脚本所用的软件检查正确的体系结构。我在x86和x64上检查了我的解决方案。它在不检查体系结构的情况下运行良好。在我的情况下,我必须根据操作系统位安装VC redist,因此我必须删除“WOW6432节点”来自注册表路径的部分,该路径仅存在于x64系统上。不过,感谢您提供的代码;)