自定义操作不起作用 msiexec /a - Visual Studio 安装项目
Posted
技术标签:
【中文标题】自定义操作不起作用 msiexec /a - Visual Studio 安装项目【英文标题】:Custom Action not working msiexec /a - Visual Studio Setup Project 【发布时间】:2021-11-22 18:22:16 【问题描述】:我有一个创建 setup.msi 的 Visual Studio 安装项目。我在安装期间和之后运行了一些自定义操作。
当我执行命令 msiexec.exe /a setup.msi /qn 升级现有安装时,自定义操作不会触发。 /a 选项(管理执行)似乎绕过了自定义操作。
有什么想法吗?
提前谢谢你。
【问题讨论】:
【参考方案1】:Administative installation 在 MSI 中以自己的顺序运行。因此,您实际上可以在那里插入自定义操作(尽管我不推荐这样做),并且它们只会在管理安装期间运行。
您需要在正常安装顺序中插入这些自定义操作(以及),以便它们在正常安装期间始终运行 (InstallExecuteSequence
和/或 InstallUISequence
强>)。
正常安装:
InstallExecuteSequence
InstallUISequence
管理安装:
AdminExecuteSequence
AdminUISequence
广告:还有广告序列。此序列使用:AdvtUISequence
和 AdvtExecuteSequence
表。广告是当您注册 MSI 包以供以后安装时。安装可以由用户触发,也可以通过添加/删除程序或通过应用程序触发。按需安装。这些天似乎很少使用(主要原因可能是人们在尝试使用它时面临的技术故障和操作问题)。
文件提取:管理安装本质上是一种美化的文件提取(相当于解压缩)。它提取所有文件,调整媒体表以使用外部文件和其他一些东西。它的主要目的是创建一个安装媒体以放在网络共享上,并允许检查 MSI 的内容。 MSI 还具有“从源代码运行功能”的能力 - 老实说,我从未见过成功使用过。
注意!:administrative installations 虽然很琐碎,但对于企业包装和 MSI 安装技术的“透明度”至关重要。这种透明度是the key benefits of the MSI technology 之一(在页面稍下方列出)。确保您的 MSI 在管理安装期间正常工作。例如,我认为某些 WiX GUI 集中存在错误。有一个技巧可以通过抑制 GUI 使它们仍然工作。 Something like this:msiexec.exe /a MySetup.msi TARGETDIR=D:\ExtractHere /qn
在管理安装期间您需要自定义操作做什么?
【讨论】:
其背后的想法是使用 Windows 服务(本地系统)检查更新并在静默模式下以管理员权限安装新的 msi。执行自定义操作以对工作目录进行一些更改和一些其他检查...我对 msi 不是很熟悉。以上是关于自定义操作不起作用 msiexec /a - Visual Studio 安装项目的主要内容,如果未能解决你的问题,请参考以下文章