本文主要讨论使用 InstallShield 进行 MSI 安装包的修改封装,要查看如何使用微软提供的开发工具进行此操作,请查看此贴:
【原创】安装程序 Repack 攻略 之 MSI 篇(MS版) 下面是我对 MSI 的基本情况的认识,如果只想了解怎么进行 Repack,也可以跳过这一部分。
MSI 概述
MSI 最基本的部分是对安装程序的一个描述,包含了一个所谓安装信息数据库,涉及到安装界面、所使用的文件、快捷方式、INI文件、注册表、以及版本控制和反安装信息等。
对于安装时所使用到的文件,MSI 可以有 3 种方式来处理:
- 文件随同安装程序以原生态发布
- 文件压缩成 Data.cab 的形式随安装程序发布
- 文件压缩成 .cab 文件后注入到 .msi 文件中
显而易见,一般安装程序很少以第一种方式发布,而第二种和第三种比较常见。
对于注入到 .msi 文件中的情况,需要首先用 orca 找出 Media 的描述值,然后用 msidb 将 .cab 从 .msi 中抽取出来,如果直接以 Data.cab 形式发布就可以省去这一步操作。
如果要添加移除或是替换 .cab 中的文件,需要先用 orca 找出文件对应的描述值(可能就是文件名本身或是一串HEX编码抑或两者的结合),然后将 .cab 文件解包,按照描述值的文件名来操作文件后再用 cabarc 重新打包回去。
如果 .cab 是从 .msi 抽取的,再用 msidb 重新编入。
InstallShield.X 开发程序已经对繁琐的操作进行了很好地整合,只需要设置好,IS 会自动进行批处理重新编译 .msi 文件。让原本复杂的东西变得比使用解压软件还简单,下面就介绍一下操作吧。
运行 InstallShield 10.5 ,打开要操作的 .msi 文件,在左侧目录树中选中 Organization 下面的 Components,屏幕中部会出现安装程序的模块列表,在这其中找到要修正的文件所在的组选中,右侧会出现文件列表。
现在你可以在文件上点击右键移除不需要的文件,如果需要添加或者替换文件,可以直接将文件拖放进入这个窗口即可。提示是否覆盖原文件时选Yes。
好了,大干一番之后需要保存成果了,IS 会弹出窗口询问要怎样编码修正的文件。
- 选 On the source media ,既是将文件以原生态伴随发布
- 选 In a new cab file,是将文件打包成 Data.cab
-
选 In a new cab file,同时选中Stream the new cab file into the Windows Installer是将文件打包成 .cab 并编入到 .msi 文件当中
怎么样?是不是和用 WinRAR 一样简单?这下我们可以把补丁集成到安装程序中了,就像原装的一样
TIPS: 如果安装程序是由 Setup.exe Data1.cab 等一系列文件组成的,你还可以使用 InstallShield 的 Pakage For The Web 来将其打包成单个文件,同样,如果原始安装程序是 InstallShield 制作的单个文件,不妨试一试用右键打开,WinRAR 可以将其解压还原出多个文件。
分享到:
相关推荐
微软MSI清理工具-Repack,
在Java开发中,Spring框架是不可或缺的一部分,它提供了一种模块化、可扩展的方式来构建应用程序。在使用Spring框架时,有时会遇到导入源码或运行项目时出现类找不到的错误,这通常是因为缺少了必要的依赖库。在这个...
1. **OfficeTab.msi**:这是主安装程序,用于在用户的系统上安装OfficeTab 8组件。它会将必要的DLL文件和设置添加到Office应用程序中,使标签功能生效。 2. **OfficeTabCenter.exe**:可能是一个配置或更新中心,...
标题中的"spring-cglib-repack-3.2.5.jar"和"spring-objenesis-repack-2.6.jar"是两个与Spring框架相关的库文件,它们主要用于Spring框架的内部实现,尤其是针对Java对象的创建和代理机制。下面将详细解释这两个库的...
在给定的标题和描述中,提到了两个关键的jar包:`spring-cglib-repack-3.2.6.jar` 和 `spring-objenesis-repack-2.6.jar`。这两个文件对于理解Spring框架的内部机制以及如何在IDEA中构建Spring源码至关重要。 首先...
总结,WinRAR 6.0 Repack terert版结合了WinRAR的强大功能和terert的精心优化,为用户提供了一个既高效又实用的文件压缩解决方案。掌握并充分利用这些特性与技巧,能够极大地提升我们的文件管理和工作效率。无论是...
在Java开发领域,Spring框架是应用最广泛的轻量级框架之一,它提供了全面的基础设施支持,使得开发者可以更轻松地创建企业级应用。在深入理解`spring-cglib-repack-3.2.4.jar`和`spring-objenesis-repack-2.5.1.jar`...
·安装GitHub下载新版的spring源码到本地·下载Gradle之后通过“gradle cleanIdea eclipse”命令将spring源码转换成可导入eclipse的工程·导入足够的spring工程之后,会发现spring-core下缺少spring-cglib-repack-...
"spring-cglib-repack-3.2.5.jar"、"spring-objenesis-repack-2.6.jar"和"spring-objenesis-repack-2.5.1.jar"这三个文件是Spring源码阅读环境中常用的依赖包,它们各自承担着不同的功能。 首先,我们来看"CGLIB"...
在Spring框架中,CGlib被用作动态代理的实现之一。当目标对象不支持接口时(即,它只是一个普通的Java类),Spring会利用CGlib创建目标对象的子类,并在子类中拦截方法调用,这样就能实现AOP(面向切面编程)的功能...
Spring框架是Java开发中不可或缺的一部分,它为应用程序提供了一种模块化、面向接口的编程模型。在本场景中,我们关注的是两个特定的jar包——"spring-cglib-repack-3.2.5.jar" 和 "spring-objenesis-repack-2.5.1....
标题中的"spring-cglib-repack-3.2.5.jar"和"spring-objenesis-repack-2.6.jar"是Spring框架在运行时依赖的两个关键库,它们主要涉及到动态代理和对象创建的优化。 1. **CGLIB(Code Generation Library)**: ...
当我们在研究或编译Spring 4.0的源码时,可能会遇到一些依赖问题,其中"spring-cglib-repack-3.1.jar"和"spring-objenesis-repack-2.1.jar"是两个关键的jar包,它们在源码编译过程中起着至关重要的作用。本文将详细...
然而,有时候在导入Spring项目时,可能会遇到一些问题,例如标题中提到的"spring-cglib-repack-3.2.4.jar"和"spring-objenesis-repack-2.4.jar"这两个jar包的缺失。这些jar包对于Spring框架的正常运行至关重要,因为...
在深入探讨Spring框架及其相关组件之前,我们先来理解一下标题和描述中提到的两个关键组件:`spring-cglib-repack-3.2.6` 和 `spring-objenesis-repack-2.6`。这两个jar包是Spring框架在进行某些功能实现时所依赖的...
当一个MSI安装程序未能正确卸载时,MSICUU2可以找到并删除与之关联的注册表项和文件,从而允许用户重新安装或卸载而不会遇到冲突。 使用MSICUU2的步骤通常包括: 1. 下载并运行MSICUU2.exe文件。 2. 工具会列出...
在Java开发领域,Spring框架是应用最广泛的轻量级框架之一,它提供了全面的基础设施支持,使得开发者可以更高效地构建企业级应用。在Spring框架的运作过程中,有时会遇到由于类加载器或依赖冲突导致的问题,特别是...
repack-bootimg.pl 重新打包Andorid boot image.
而`spring-cglib-repack-3.2.5.jar`和`spring-objenesis-repack-2.6.jar`这两个文件是Spring框架中两个重要的依赖包,它们分别涉及到CGlib和Objenesis两个库,这两个库在Spring中的作用不可小觑。 **CGlib(Code ...
在IT行业中,构建Java应用程序时,我们经常使用构建工具来自动化构建过程,如Maven或Gradle。本主题聚焦于使用Gradle构建Spring源码工程,特别是与`Spring-chlib-repack-3.2`相关的知识。这个特殊版本的Spring库是...