博客
关于我
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/

    你可能感兴趣的文章
    Objective-C实现9×9二维数组数独算法(附完整源码)
    查看>>
    Objective-C实现A*(A-Star)算法(附完整源码)
    查看>>
    Objective-C实现A-Star算法(附完整源码)
    查看>>
    Objective-C实现abbreviation缩写算法(附完整源码)
    查看>>
    Objective-C实现ABC人工蜂群算法(附完整源码)
    查看>>
    Objective-C实现activity selection活动选择问题算法(附完整源码)
    查看>>
    Objective-C实现AC算法(Aho-Corasick) 算法(附完整源码)
    查看>>
    Objective-C实现adaboost算法(附完整源码)
    查看>>
    Objective-C实现Adler32算法(附完整源码)
    查看>>
    Objective-C实现AES算法(附完整源码)
    查看>>
    Objective-C实现AffineCipher仿射密码算法(附完整源码)
    查看>>
    Objective-C实现aliquot sum等分求和算法(附完整源码)
    查看>>
    Objective-C实现all combinations所有组合算法(附完整源码)
    查看>>
    Objective-C实现all permutations所有排列算法(附完整源码)
    查看>>
    Objective-C实现all subsequences所有子序列算法(附完整源码)
    查看>>
    Objective-C实现AlphaNumericalSort字母数字排序算法(附完整源码)
    查看>>
    Objective-C实现alternate disjoint set不相交集算法(附完整源码)
    查看>>
    Objective-C实现alternative list arrange备选列表排列算法(附完整源码)
    查看>>
    Objective-C实现An Armstrong number阿姆斯特朗数算法(附完整源码)
    查看>>
    Objective-C实现anagrams字谜算法(附完整源码)
    查看>>