博客
关于我
Inno setup打包vc++运行库
阅读量:638 次
发布时间:2019-03-14

本文共 1377 字,大约阅读时间需要 4 分钟。

在打包Windows应用程序时,很多开发者都会遇到依赖VC++运行库的情况。为了方便用户直接使用Inno Setup进行打包,本文将详细说明如何集成并正确打包VC++运行库。

下载VC++运行库

首先,需要从官方网站下载相应版本的VC++运行库。搜索引擎中可以找到最新版本的下载链接,通常会以.x86.exe.x64.exe的格式提供。

在Inno Setup中加载运行库

打开Inno Setup脚本文件,进入[Files]标签卡,添加以下内容:

Source: "..\runtime\VC_redist.x86.exe"; DestDir: "{tmp}";`

这将将运行库文件复制到临时目录中。

启动运行库安装

[Run]标签卡中,添加安装命令:

Filename: "{tmp}\VC_redist.x86.exe"; Parameters: "/i \"{tmp}\VC_redist.x86.exe\" /quiet";`StatusMsg: "安装Microsoft Access Database Engine 2015 Redistributable...";`

这里Check: NeedInstallVC9SP1用于检测是否需要安装VC9 SP1补丁。

检测是否需要安装VC9补丁

使用以下代码判断VC9 SP1是否已安装:

var vc9SP1Missing: Boolean;function NeedInstallVC9SP1(): Boolean;begin  Result := vc9SP1Missing;end;

添加注册表检测代码:

# 检测之前安装function InitializeSetup(): Boolean;var vcVersion: Cardinal;begin  if RegQueryDWordValue(HKLM, 'SOFTWARE\Wow6432Node\Microsoft\Windows\CurrentVersion\Uninstall\{5CD4E357-9ED6-42AC-B654-F1FC21DD60C9}', 'Version', vcVersion) then  begin    # 如果未找到特定版本,判断为缺失    if vcVersion = 0 then      vc9SP1Missing := true;  end;end;

这里{5CD4E357-9ED6-42AC-B654-F1FC21DD60C9}是VC9 SP1的产品ID,需要根据实际需要使用不同的值。

查看运行库版本信息

如果需要知道具体使用的VC运行库版本,可以按照以下步骤操作:

  • 解压VC++运行库文件
  • 使用文件浏览器打开.exe文件
  • 使用Ctrl+F搜索ProductCode
  • 确认Minimum RuntimeAdditional Runtime的版本号
  • 注销注册表信息后,搜索ProductCode即可确认安装状态
  • 注意事项

    • 确保Inno Setup脚本位于运行库文件所在目录。
    • 注册表路径和产品ID需根据实际运行库版本调整。
    • 打包完成后,确保检测结果与注册表信息一致。

    通过以上步骤,您可以轻松在Inno Setup中集成并打包VC++运行库,确保应用程序能够正确运行。

    转载地址:http://lcflz.baihongyu.com/

    你可能感兴趣的文章
    Pytest 命令行报错: Hint: make sure your test modules/packages have valid Python names.
    查看>>
    pytest 的 request fixture:实现个性化测试需求
    查看>>
    Pytest+Allure 接口自动化测试平台开发实战
    查看>>
    pytest+allure使用动态级别,参数化severity
    查看>>
    Pytest+Unittest+Git+Jenkins企业级CICD自动化测试平台建设方案
    查看>>
    Pytest+Yaml 数据驱动测试用例
    查看>>
    pytest-base-url插件之配置可选的项目系统URL
    查看>>
    pytest-xdist 进行多进程并发测试!
    查看>>
    pytest-xdist:远程多主机 - 分布式运行自动化测试
    查看>>
    Pytest中进行测试环境切换:pytest_addoption!
    查看>>
    pytest利用request fixture实现个性化测试需求详解
    查看>>
    pytest单元测试实战
    查看>>
    pytest单元测试框架
    查看>>
    Pytest参数详解 — 基于命令行模式
    查看>>
    pytorch cv2 plt transforms pause waitforbuttonpress一个完整的图片处理程序
    查看>>
    pytest学习和使用 - Pytest用例执行结果有哪几种状态?
    查看>>
    pytest实战技巧之参数化应用!
    查看>>
    Pytest实践:Python测试技术基础知识!
    查看>>
    Pytest数据驱动怎么玩?实战教程来了!
    查看>>
    Pytest框架 之【用例执行顺序】
    查看>>