首页 > 解决方案 > 自定义操作不起作用 msiexec /a - Visual Studio 安装项目

问题描述

我有一个创建 setup.msi 的 Visual Studio 设置项目。我在安装期间和之后运行了一些自定义操作。

当我执行命令 msiexec.exe /a setup.msi /qn升级现有安装时,自定义操作不会触发。似乎选项/a(管理执行)正在绕过自定义操作。

任何想法 ?

先感谢您。

标签: visual-studiowindows-installersetup-projectcustom-actionvisual-studio-setup-proje

解决方案


管理安装在 MSI 中按自己的顺序运行。因此,您实际上可以在其中插入自定义操作(尽管我不建议这样做),并且它们只会在管理安装期间运行。

您需要在正常安装顺序(以及)中插入这些自定义操作,以便它们在正常安装(InstallExecuteSequence和/或InstallUISequence)期间运行。

正常安装:

  • InstallExecuteSequence
  • InstallUISequence

管理安装:

  • AdminExecuteSequence
  • AdminUISequence

广告:还有广告序列。此序列使用:AdvtUISequenceAdvtExecuteSequence表。广告是当您注册 MSI 包以供以后安装时。安装可以由用户触发,也可以通过添加/删除程序或通过应用程序触发。按需安装。这些天似乎很少使用(主要原因可能是人们在尝试使用它时面临的技术故障和操作问题)。

文件提取:管理安装本质上是一种美化的文件提取(相当于解压缩)。它提取所有文件,调整媒体表以使用外部文件和其他一些东西。它的主要目的是创建一个安装媒体以放在网络共享上,并允许检查 MSI 的内容。MSI还有“从源代码运行功能”的能力——老实说,我从未见过成功使用过。

笔记!:虽然相当琐碎,但管理安装对于企业打包和 MSI 安装技术的“透明度”至关重要。这种透明性是MSI 技术的主要优势之一(在页面下方略列出)。确保您的 MSI 在管理安装期间正常工作。例如,我认为某些 WiX GUI 集中存在错误。有一个技巧可以通过抑制 GUI 使它们仍然工作。像这样的东西msiexec.exe /a MySetup.msi TARGETDIR=D:\ExtractHere /qn

在管理安装期间,您需要自定义操作做什么?


推荐阅读