打包软件InstallShield提示和技巧:修改MSI的文件传输行为

现有一些用于修改默认Windows Installer(MSI)文件传输行为以进行安装和卸载的技术,但是如果使用InstallShield?进行软件安装,则可以在InstallShield环境的组件视图或安装设计视图中修改永不覆盖设置。

    InstallShield是构建Windows安装程序和MSIX包并直接在Microsoft Visual Studio中创建安装的最快速最简单的方法。借助InstallShield,您可以快速适应行业的变化,更快地进入市场并提供引人入胜的客户体验。    

InstallShield最新试用版


修改MSI的文件传输行为

    现有一些用于修改默认Windows Installer(MSI)文件传输行为以进行安装和卸载的技术:

  • 使用永不覆盖组件设置。

  • 更改REINSTALLMODE属性。

  • 指定伴随文件关系。

  • 使用永久组件设置。

  • 使用RemoveFile表删除应用程序创建的文件。

    如果使用InstallShield行软件安装,则可以在InstallShield环境的组件视图或安装设计视图中修改永不覆盖设置。如果将永不覆盖组件属性设置为是,则在目标系统上已经存在其密钥文件的情况下,Windows Installer将跳过该组件的安装。如果目标系统上不存在组件的密钥文件,则Windows Installer将遵循正常的文件覆盖行为。

    您可以使用REINSTALLMODE属性来修改默认的文件覆盖行为。REINSTALLMODE属性包含一个字符串,该字符串由表示应该如何覆盖文件的一组字母组成。默认值为omus,其中o表示旧文件应被新文件覆盖,m和u表示应重新安装计算机和用户注册表数据,而s则应重新安装快捷方式。

    要修改文件覆盖行为,可以将REINSTALLMODE值中的o替换为表示所需行为的另一个字母。一些可能的值是e,以覆盖旧版本或同等版本的文件,或者a,覆盖现有文件而不检查其版本信息。

  • 注意:REINSTALLMODE值不能仅限于组件或功能,而是适用于将要安装的所有功能。

    要修改REINSTALLMODE的值,通常在部署安装时在命令行上设置该值。 由于REINSTALLMODE是公共属性,因此可以在命令行上如下修改其值:

    msiexec /i product.msi REINSTALLMODE=amus REINSTALL=ALL

(REINSTALL属性包含要重新安装的功能的逗 分隔列表,或用于重新安装系统上已安装的每个功能的特殊值ALL。)

    调整文件覆盖行为的另一种技术是使用伴随文件,该文件将一个文件的覆盖行为与另一个文件的行为相关联。在运行时,如果安装了伴随文件关系的父级,则将安装子级而不考虑其与现有文件的版本关系。要建立伴随文件关系,请为子级的Version数据输入父级文件的File-table键。默认情况下,文件的File-table键显示在组件文件列表中属性的最右边(键)列中。

截图未命名.jpg

    要在子代的版本信息中输入父文件的File-table键,您可以使用文件的属性面板,在右键单击文件图标并选择属性时可以使用该面板。在属性面板中,选中替代系统版本复选框,然后在版本字段中输入所需的密钥。

属性

    文件传输行为的另一个方面是产品的卸载程序。如果您将组件的Permanent属性设置为Yes,则在卸载组件时不会删除该组件的数据。默认情况下,卸载产品时,将删除安装所安装的所有数据。

    默认情况下,产品的卸载将仅删除原始安装所安装的文件。安装完成后,由应用程序创建的文件将不会自动删除。如果要删除应用程序创建的文件,可以将记录添加到项目的RemoveFile表中。在RemoveFile表中,您可以指定在安装或删除给定组件时要删除的其他文件。

InstallShield帮助文档:

  • InstallShield提示和技巧:修改MSI的文件传输行为-PDF


如果您想要购买正版授权InstallShield,可以联系在线客服>>咨询相关问题。

标签:

声明:本站部分文章及图片源自用户投稿,如本站任何资料有侵权请您尽早请联系jinwei@zod.com.cn进行处理,非常感谢!

上一篇 2019年10月1日
下一篇 2019年10月1日

相关推荐

发表回复

登录后才能评论