gpt4 book ai didi

visual-studio - 如何使用 NSIS 安装 Visual C++ Redist

转载 作者:行者123 更新时间:2023-12-04 01:24:50 26 4
gpt4 key购买 nike

我的 C++ 应用程序需要安装 Visual Studio C++ 可再发行组件。我正在使用 Visual Studio 2019 社区版。我使用 NSIS(3.04 版)来创建我的安装程序。我是否应该尝试检测 redist 是否已安装,并且仅在它不是最新的情况下才安装它?

最佳答案

关于如何执行此操作有多种答案,包括如何检测是否安装了 redist 的许多方法。我不会说所有这些都是不完整的,也不能在 future 证明方法中工作,但我没有成功。所以,我认为最好的办法就是始终安装 redist 并让 Microsoft 来处理它。截至 2020 年 3 月,这将为您的安装程序增加 14MB,但也许在这个高速互联网时代,这不是曾经的大问题。幸运的是,这很简单,希望这个问题能让您避免关注我所做的所有过时的引用资料和链接。

可以在此处找到有关 Microsoft redist 的说明:Redistributing Visual C++ Files

要将其转换为 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'

然而,我没有得到好的结果。天啊。

关于visual-studio - 如何使用 NSIS 安装 Visual C++ Redist,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/62092185/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com