如何使用NSIS安装Visual C++ Redist?

问题描述 投票:0回答:1

我的C++应用程序需要安装Visual Studio C++重新分发。我使用的是Visual Studio 2019社区版。我使用NSIS(3.04版本)来创建我的安装程序。我是否应该尝试检测是否安装了redist,只有在它不是最新的情况下才安装它?

visual-studio visual-c++ installation nsis
1个回答
0
投票

关于如何做到这一点,有一个融会贯通的答案,包括很多如何检测是否安装了redist的方法。我不打算说 的是不完整的,而且在未来的证明方法中不起作用,但我还没有成功地使用它们。所以,我认为最好的办法就是安装redist always,让微软来处理。从2020年3月起,这将给你的安装程序增加14MB,但也许在这个高速互联网的时代,这并不是曾经的大问题。幸运的是这是相当简单的,希望这个问题能让你不像我一样遵循所有过时的参考和链接。

关于微软的redist的说明可以在这里找到。重新分发Visual C++文件

要把这个变成NSIS。

在你的Visual Studio安装中找到你想重新发布的文件。对我来说,这就是。

C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\VC\Redist\MSVC\14.25.28508\vcredist_x86.exe

版本号将来肯定会改变(14.25.28508),很可能就在你安装更新Visual Studio的时候,所以记住,当你的安装程序崩溃时,你需要更新这个路径。你还需要在vcredist_x86.exe和vcredist_x64.exe之间进行选择,这取决于你的应用程序是以32位还是64位的方式构建。

在你的NSIS安装文件中添加这样的部分,可能在你做主安装之前。它所做的就是将redist文件复制到文件系统中,运行它,等待完成,然后删除redist文件。

Section "Visual Studio Runtime"
  SetOutPath "$INSTDIR"
  File "C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\VC\Redist\MSVC\14.25.28508\vcredist_x86.exe"
  ExecWait "$INSTDIR\vcredist_x86.exe"
  Delete "$INSTDIR\vcredist_x86.exe"
SectionEnd

为你要使用的redist文件替换合适的路径。

按照写法(和当前的redist程序行为),这会弹出一个对话框,用户必须按照这个对话框来安装redist。你可以用安静模式来代替。

ExecWait '"$INSTDIR\vcredist_x86.exe" /quiet'

然而我并没有得到很好的效果。YMMV。

© www.soinside.com 2019 - 2024. All rights reserved.